|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1385 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 1385.
Report 1385 Actions
Problem Report Number 1385 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0667 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1996-09-16 08:00 Product Standard Internationalised System Calls and Libraries Extended (UNIX 95) Certification Program The Open Brand certification program Test Suite VSU version 4.1.0 Test Identification CAPIbase/fsetrlimit 24 25 Problem Summary TSD4U.00150 This test may fail due to timeout on some implementations. Problem Text
These assertions are failing on our implemenation because the
amount of time that the parent waits for the child is hard-coded
and does not allow sufficient time for the child to fill up the
stack by recursively calling a funciton, and then exit when a
SIGSEGV is generated.
The specific code I'm referring to is:
line 197 of fsetrlimit25.c:
wait_for(pid, 10*MAX_TIME_TO_RUN);
and line 248 of fsetrlimit24.c:
if ((status = wait_for(pid, 50*MAX_TIME_TO_RUN)) == -1)
When I modify these to
wait_for(pid, 500*MAX_TIME_TO_RUN);
if ((status = wait_for(pid, 2550*MAX_TIME_TO_RUN)) == -1)
these pass on our system.
Following are the journal entries which are produced after I make
these changes. It is clear from the timestamps in the journal that
the MAX_TIME_TO_RUN hardcoded in the test suite are not sufficient
on our implementation.
We request a TSD be granted for this assertion.
10|1 /tset/CAPIbase/fsetrlimit/fsetrlimit24 10:29:30|TC Start, scenario ref 0-1
15|1 1.10 1|TCM Start
400|1 24 1 10:29:37|IC Start
200|1 1 10:29:37|TP Start
520|1 1 120520727 1 1|SPEC1170TESTSUITE CASE 24
520|1 1 120520727 1 2|If the implementation does not inhibit enforcement of
520|1 1 120520727 1 3|limits for the resource RLIMIT_AS:
520|1 1 120520727 1 4|When the size of the stack for the calling process
520|1 1 120520727 1 5|would cause the total available memory for the calling
520|1 1 120520727 1 6|process to exceed the limit on the size set by a call
520|1 1 120520727 1 7|to int setrlimit(int resource, const struct rlimit
520|1 1 120520727 1 8|*rlp) for resource RLIMIT_AS the implementation shall
520|1 1 120520727 1 9|not automatically grow the stack.
520|1 1 8257555 1 1|PREP: Obtain the current limits
520|1 1 8257555 1 2|TEST: Set limits with setrlimit
520|1 1 8257555 1 3|INFO: Raise succeeded
520|1 1 8257555 1 4|PREP: Get set to catch SIGSEGV on an alternate stack
520|1 1 8257555 1 5|PREP: Grow stack until SIGSEGV is generated
520|1 1 8257555 1 6|PREP: Set to catch SIGSEGV again
520|1 1 8257555 1 7|PREP: Grow stack again until SIGSEGV is generated
520|1 1 8257555 1 8|TEST: The implementation does not automatically
520|1 1 8257555 1 9| grow the stack beyond the limit specified by
520|1 1 8257555 1 10| comparing the stack addresses when the stack
520|1 1 8257555 1 11| limit was reached in both the attempts
220|1 1 0 11:40:51|PASS
410|1 24 1 11:40:51|IC End
80|1 0 11:40:52|TC End
900|11:40:52|TCC End
10|1 /tset/CAPIbase/fsetrlimit/fsetrlimit25 09:26:58|TC Start, scenario ref 0-1
15|1 1.10 1|TCM Start
400|1 25 1 09:27:04|IC Start
200|1 1 09:27:04|TP Start
520|1 1 7864341 1 1|SPEC1170TESTSUITE CASE 25
520|1 1 7864341 1 2|If the implementation does not inhibit enforcement of
520|1 1 7864341 1 3|limits for the resource RLIMIT_AS:
520|1 1 7864341 1 4|When the size of the stack for the calling process
520|1 1 7864341 1 5|causes the size of the total available memory for the
520|1 1 7864341 1 6|calling process to exceed the limit set by a call to
520|1 1 7864341 1 7|int setrlimit(int resource, const struct rlimit *rlp)
520|1 1 7864341 1 8|for resource RLIMIT_AS the process shall receive a
520|1 1 7864341 1 9|SIGSEGV signal.
520|1 1 127795217 1 1|PREP: Save the current limits
520|1 1 127795217 1 2|TEST: Set limits with setrlimit
520|1 1 127795217 1 3|INFO: Raise succeeded
520|1 1 127795217 1 4|PREP: Get set to catch SIGSEGV on an alternate stack
520|1 1 127795217 1 5|TEST: Process receives SIGSEGV when the stack grows
520|1 1 127795217 1 6| beyond the limit
220|1 1 0 10:05:33|PASS
410|1 25 1 10:05:33|IC End
80|1 0 10:05:34|TC End
900|10:05:34|TCC EndTest Output
10|1 /tset/CAPIbase/fsetrlimit/fsetrlimit24 20:49:52|TC Start, scenario ref 0-1
15|1 1.10 1|TCM Start
400|1 24 1 20:49:59|IC Start
200|1 1 20:49:59|TP Start
520|1 1 7340044 1 1|SPEC1170TESTSUITE CASE 24
520|1 1 7340044 1 2|If the implementation does not inhibit enforcement of
520|1 1 7340044 1 3|limits for the resource RLIMIT_AS:
520|1 1 7340044 1 4|When the size of the stack for the calling process
520|1 1 7340044 1 5|would cause the total available memory for the calling
520|1 1 7340044 1 6|process to exceed the limit on the size set by a call
520|1 1 7340044 1 7|to int setrlimit(int resource, const struct rlimit
520|1 1 7340044 1 8|*rlp) for resource RLIMIT_AS the implementation shall
520|1 1 7340044 1 9|not automatically grow the stack.
520|1 1 47906831 1 1|PREP: Obtain the current limits
520|1 1 47906831 1 2|TEST: Set limits with setrlimit
520|1 1 47906831 1 3|INFO: Raise succeeded
520|1 1 47906831 1 4|PREP: Get set to catch SIGSEGV on an alternate stack
520|1 1 47906831 1 5|PREP: Grow stack until SIGSEGV is generated
520|1 1 31981582 2 1|ERROR: wait_for: Timed-out waiting for child to exit.
520|1 1 31981582 2 2|ERROR: process exited with signal 9
220|1 1 1 20:58:22|FAIL
410|1 24 1 20:58:22|IC End
80|1 0 20:58:22|TC End
900|20:58:22|TCC End
10|1 /tset/CAPIbase/fsetrlimit/fsetrlimit25 20:59:46|TC Start, scenario ref 0-1
15|1 1.10 1|TCM Start
400|1 25 1 20:59:50|IC Start
200|1 1 20:59:50|TP Start
520|1 1 7667724 1 1|SPEC1170TESTSUITE CASE 25
520|1 1 7667724 1 2|If the implementation does not inhibit enforcement of
520|1 1 7667724 1 3|limits for the resource RLIMIT_AS:
520|1 1 7667724 1 4|When the size of the stack for the calling process
520|1 1 7667724 1 5|causes the size of the total available memory for the
520|1 1 7667724 1 6|calling process to exceed the limit set by a call to
520|1 1 7667724 1 7|int setrlimit(int resource, const struct rlimit *rlp)
520|1 1 7667724 1 8|for resource RLIMIT_AS the process shall receive a
520|1 1 7667724 1 9|SIGSEGV signal.
520|1 1 48168975 1 1|PREP: Save the current limits
520|1 1 48168975 1 2|TEST: Set limits with setrlimit
520|1 1 48168975 1 3|INFO: Raise succeeded
520|1 1 48168975 1 4|PREP: Get set to catch SIGSEGV on an alternate stack
520|1 1 48168975 1 5|TEST: Process receives SIGSEGV when the stack grows
520|1 1 48168975 1 6| beyond the limit
520|1 1 32178190 2 1|ERROR: wait_for: Timed-out waiting for child to exit.
220|1 1 1 21:01:33|FAIL
410|1 25 1 21:01:33|IC End
80|1 0 21:01:33|TC End
900|21:01:33|TCC EndReview Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
We recommend this request be refused.
Each of the tests referenced above completes in 1 second on the
slowest test system we have in house (a 25MHz RISC system). The
timeouts for these tests are 100 and 500 seconds respectively.
If you look at the passing journal the submitter includes you can
see that they are requesting these timeouts be increased to more
than 2280 seconds (40 min) and 4260 seconds (70 min)
respectively.
We believe that a reasonable test environment should be able to
complete these tests in the time alloted.
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 1385
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority