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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1269 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 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 FAIL

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

     

    Back   


Contact the Certification Authority