|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1294 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 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 EndReview 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:
- View Report 1294
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority