HomeAbout Us A-Z IndexSearch * Contact Us Register LoginPress Shop

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1385 Details

Help 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 End
    Test 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 End

    Review 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:

     

    Back   


Contact the Certification Authority