|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1273 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 1273.
Report 1273 Actions
Problem Report Number 1273 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0555 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1998-11-13 08:00 Product Standard Internationalised System Calls and Libraries Extended (UNIX 95) Certification Program The Open Brand certification program Test Suite VSU version 5.0.2 Test Identification base/setrlimit 20,25 Problem Summary TSD4U.00263 This test may fail on machines with agressive compiler optimization. Problem Text
This is applicable to all setrlimit function tests that use a
recursive
function for repeatedly allocating memory so that the resource
limits are exceeded.
The recursive function (recursive_fn in dsetrlimnit20.c)
invocation in the
child process is expected to cause stack failure with a SIGSEGV.
The parent
process waits for the termination of the child. The assumption is
that storage
for the volatile arrays declared in the recursive function will
be retained
across invocations causing the limit to be exceeded.
But, in the absence of references to the volatile arrays, a
compiler need not
retain the arrays and they can be optimized out of existence. Our
compiler
implementation allows for such optimization, causing the child
process
to remain within stack limits, making it loop. The parent process
times out
waiting for the child to terminate.
Our compiler treats the storage for the arrays to be discardable,
as there
are no references to it. To make the test more robust and work
with different
compilers, the arrays declared in recursive_fn should be
referenced,
perhaps using an assignment to an externally declared pointer.Test Output
TEST CASE: setrlimit
TEST PURPOSE #20
If the implementation does not inhibit enforcement of
limits for the resource RLIMIT_STACK:
When the size of the stack for the calling process
exceeds the limit set by a call to int setrlimit(int
resource, const struct rlimit *rlp) for resource
RLIMIT_STACK the process shall receive a SIGSEGV
signal.
PREP: Save the current stack limits
PREP: Check if limits are enforced
TEST: Set limits with setrlimit
INFO: Raise succeeded
PREP: Get set to catch SIGSEGV on an alternate stack
TEST: Process receives SIGSEGV when the stack grows
beyond the limit
ERROR: wait_for: Timed-out waiting for child to exit.
20 FAIL
TEST PURPOSE #25
If the implementation does not inhibit enforcement of
limits for the resource RLIMIT_AS:
When the size of the stack for the calling process
causes the size of the total available memory for the
calling process to exceed the limit set by a call to
int setrlimit(int resource, const struct rlimit *rlp)
for resource RLIMIT_AS the process shall receive a
SIGSEGV signal.
PREP: Save the current limits
TEST: Set limits with setrlimit
INFO: Raise succeeded
PREP: Get set to catch SIGSEGV on an alternate stack
TEST: Process receives SIGSEGV when the stack grows
beyond the limit
ERROR: wait_for: Timed-out waiting for child to exit.
25 FAILReview Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
We agree this is a test suite deficiency in the test
suite version(s) listed.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion
This is an agreed Test Suite Deficiency.
Problem Reporting System Options:
- View Report 1273
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority