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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 1294 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 1294.


Report 1294 Actions


    Problem Report Number 1294
    Submitter's Classification Specification problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0576
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1998-07-14 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.1
    Test Identification tset/CAPIbase/sigaltstack 1
    Problem Summary TSD4U.00242 These tests will fail on implementations with small values for SIGSTKSZ.
    Problem Text
    This interpretation request concerns the test cases sigaltstack #1 and
    sigstack #1 .

    The interpretation MSF4U.00011 was granted to cover this test result.

    In view of time constraints and the proximity to satisfying the requirements
    for UNIX 95 branding, we did not press for an interpretation on the underlying
    Grey Area in the specification and the corresponding test suite code.

    The essential points in our initial support requests 600 and 602 presented the
    problem :

    > It is unclear in SUS exactly what can be executed under the signal handler
    > context with an alternate stack of SIGSTKSZ ("usual case").

    The Single UNIX Specification states the requirement as being
    "... the number of bytes that would be used to cover the usual case when
    manually allocating an alternate stack area."
    The "usual case" is not quantitatively defined.

    > The signal handler sh_1A calls tet_infoline(), which in turn calls other
    > routines and noteably sprintf(). The handler then calls on_stack() before
    > returning.
    >
    > Under section Description, Signal Actions of sigaction() in SUS, it is
    > specified that functions not in the list of reentrant or uninterruptible
    > functions are considered to be unsafe with respect to signals. None of the
    > printf family of routines are on the list.
    > In the sigaltstack() and sigaction() sections of the SUS it is not directly
    > specified "how much work" can be performed while in the context of a
    > signal handler with an alternate stack of size of SIGSTKSZ.
    > In the sigaltstack() section, it is stated that SIGSTKSZ should cover "the
    > usual case", but what does that mean ? Also, that MINSIGSTKSZ + the
    > application stack requirements should be used.
    >
    > The SUS, under Application Usage, also states that if the stack overflows,
    > the behaviour is undefined.



    Due to the dependencies of a large amount of system code and a number of
    applications on the system header file signal.h, it is not possible to
    deliver an official patch for the initial version branded without a significant
    risk to compatibility.

    Subsequent versions of our IUT define an alternate stack size SIGSTKSZ
    sufficiently large to accommodate the processing required by the VSU4 test
    suite, in the context of the signal handlers for these test cases.


    In view of the points exposed above, we would like to request a TIN until
    the SUS quantitatively defines the alternate stack size SIGSTKSZ or a TSD
    for the testcases in question.
    Test Output
    10|6670 /tset/CAPIbase/fsigaltsta/fsigaltsta1 11:50:59|TC Start, scenario ref 10
    7-1972
    15|6670 1.10 7|TCM Start
    400|6670 1 1 11:50:59|IC Start
    200|6670 1 11:50:59|TP Start
    520|6670 1 28000 1 1|SPEC1170TESTSUITE CASE 1
    520|6670 1 28000 1 2|A successful call to int sigaltstack(const stack_t
    520|6670 1 28000 1 3|*ss, stack_t *oss) when ss is non-null and the
    520|6670 1 28000 1 4|ss_flags member of the structure pointed to by ss is
    520|6670 1 28000 1 5|not set to SS_DISABLE shall establish the stack
    520|6670 1 28000 1 6|described by the structure pointed to by ss as the
    520|6670 1 28000 1 7|alternate stack for processing signals and return 0.
    520|6670 1 27746 1 1|PREP: Call sigaltstack(ss, NULL)
    520|6670 1 27746 1 2|TEST: sigaltstack() returns 0
    520|6670 1 27746 1 3|PREP: Call sigaction() with SA_ONSTACK set
    520|6670 1 27746 1 4|PREP: Send self SIGTERM
    520|6670 1 27746 1 5|TEST: Ensure sig_hdlr was entered
    520|6670 1 27746 1 6|TEST: Verify alternate stack used
    520|6670 1 27746 1 7|TEST: Verify we are back to main stack
    520|6670 1 28000 2 1|ERROR: TEST TERMINATED DUE TO SIGSEGV SIGNAL (11)
    220|6670 1 1 11:50:59|FAIL
    410|6670 1 1 11:50:59|IC End
    .
    .
    .
    10|6694 /tset/CAPIbase/fsigstack/fsigstack1 11:54:27|TC Start, scenario ref 107-
    1988
    15|6694 1.10 8|TCM Start
    400|6694 1 1 11:54:27|IC Start
    200|6694 1 11:54:27|TP Start
    520|6694 1 24066 1 1|SPEC1170TESTSUITE CASE 1
    520|6694 1 24066 1 2|A successful call to int sigstack(struct sigstack *ss
    520|6694 1 24066 1 3|, struct sigstack *oss) when ss and oss are not null
    520|6694 1 24066 1 4|pointers shall cause the system to use the area of its
    520|6694 1 24066 1 5|address space specified by ss->ss_sp for processing
    520|6694 1 24066 1 6|signals received by the process, place the current
    520|6694 1 24066 1 7|signal stack context in the structure pointed to by
    520|6694 1 24066 1 8|oss, and return 0.
    520|6694 1 22532 1 1|PREP: Call sigstack(ss, oss)
    520|6694 1 22532 1 2|TEST: sigstack() returns 0
    520|6694 1 22532 1 3|PREP: Call sigstack() to return a known state
    520|6694 1 22532 1 4|TEST: oss = ss
    520|6694 1 22532 1 5|PREP: Call sigaction() with SA_ONSTACK set
    520|6694 1 22532 1 6|PREP: Send self SIGTERM
    520|6694 1 22532 1 7|TEST: Verify alternate stack used
    520|6694 1 22532 1 8|TEST: Verify we are back to main stack
    520|6694 1 24066 2 1|ERROR: TEST TERMINATED DUE TO SIGSEGV SIGNAL (11)
    220|6694 1 1 11:54:27|FAIL
    410|6694 1 1 11:54:27|IC End

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We agree these tests are deficient in allocating just SIGSTKSZ
    bytes rather than SIGSTKSZ+MINSIGSTKSZ which the spec seems to require.

    We recommend a TSD be granted for this issue.

    However we disagree with the submitter that the specification is inadequate
    in defining how big an alternate stack needs to be and feel an
    IUT is non-conforming if it does not provide enough space to
    perform these tests using the spec's defined size constants. Thus
    we do not believe a TIN/PIN would be appropriate if an IUT cannot
    pass the revised tests.

    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