|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1269 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 1269.
Report 1269 Actions
Problem Report Number 1269 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0551 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1999-03-03 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.3 Test Identification base/setrlimit 21 26 Problem Summary TSD4U.00267 This test may fail on machines with agressive compiler optimization. Problem Text
These tests fail exactly for the same reason as setrlimit tests
#20 and #25.
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 dsetrlimit21.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.
If a compiler implementation allows for such optimization, it
will
cause the child process to remain within stack limits, making it
loop.
In this case the parent process times out waiting for the child
to terminate.
A compiler can treat the storage for the arrays to be
discardable,
when 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 #21
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 and the process is blocking or ignoring
SIGSEGV, or is catching SIGSEGV and has not made
arrangements to use an alternate stack, the
disposition of SIGSEGV shall be set to SIG_DFL before
it is generated.
PREP: Obtain the current stack limits
TEST: Set limits with setrlimit
INFO: Raise succeeded
PREP: Set up a signal handler for SIGSEGV
TEST: The signal disposition was set to SIG_DFL
before delivery
ERROR: wait_for: Timed-out waiting for child to exit.
ERROR: Process didn't terminate with SIGSEGV
21 FAIL
TEST PURPOSE #26
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 and the process is blocking or
ignoring SIGSEGV, or is catching SIGSEGV and has not
made arrangements to use an alternate stack, the
disposition of SIGSEGV shall be set to SIG_DFL before
it is generated.
PREP: Fork a child
PREP: Save the current limits
TEST: Set limits with setrlimit
INFO: Raise succeeded
PREP: Set up a signal handler for SIGSEGV
TEST: The signal disposition was set to SIG_DFL
before delivery
ERROR: wait_for: Timed-out waiting for child to exit.
ERROR: Process didn't terminate with SIGSEGV
26 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 1269
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority