|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2073 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 2073.
Report 2073 Actions
Problem Report Number 2073 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.1044 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1998-04-01 08:00 Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98) Certification Program The Open Brand certification program Test Suite VSTH version 5.1.2 Test Identification PTHR.os/all/sigwait 2 Problem Summary TSD5TH.00041 Sigwait test 2 tests the following assertion: Signals generated for the process shall be delivered to exactly one of the threads waiting in a sigwait() call for the signal or not blocking the signal. ... Problem Text
Sigwait test 2 tests the following assertion:
Signals generated for the process shall be delivered to exactly one of
the threads waiting in a sigwait() call for the signal or not blocking
the signal.
For test case 2, the main thread which has SIGALRM (which is caught) masked
creates two threads, one of these is thread (t1) does a sigwait() on SIGALRM
and the other thread (t2) unblocks SIGALRM and waits on a pthread_cond_wait().
The main thread will do a kill(getpid(), SIGALRM) and the thread (t1) joins
the the sigwait() thread followed by the join of the thread (t2). The problem
is the assumption that the sigwait thread (t1) is the one which will retrieve
this signal which may not be the case, in this scenerario the thread (t2)
would have received the signal and exited. The sigwait() thread (t1) does
block indefinitely. The main thread is waiting for this sigwait() to finish
which will never complete, hence the hang of the test case.
The solution is to join the thread (t2) followed by thread (t1), instead of
thread (t1) followed by thread (t2).
Code from tset/PTHR.os/all/sigwait/sigwait.c:
395 void
396 t2_f1( int *errors, int *fails )
397 {
499
500 rval = vsth_pthread_join( tid1, &tval );
501 if ( rval == 0 )
502 {
503 if ( tval == (void *) 2 )
504 {
505 vsth_surprise("Thread exitval", 0, (int) tval, fails);
506 }
507 else if ( tval )
508 {
509 vsth_surprise("Thread exitval", 0, (int) tval, errors);
510 }
511 }
512
513 rval = vsth_pthread_join( tid2, &tval );
514 if ( rval == 0 )
515 {
516 if ( tval == (void *) 2 )Test Output
10|222 /tset/PTHR.os/all/sigwait/T.sigwait 16:14:16|TC Start, scenario ref
225-0 15
400|222 2 1 16:14:16|IC Start
200|222 2 16:14:16|TP Start
520|222 2 00003210 1 1|Signals generated for the process shall be delivered to
e xactly
520|222 2 00003210 1 2|one of the threads waiting in a sigwait() call for the
si gnal or
520|222 2 00003210 1 3|not blocking the signal.
520|222 2 00003210 1 4|Posix Ref: Component SIGWAIT
520|222 2 00003210 1 5|Assertion 9945-1:1996 3.3.8.2, 9945-1:1996 3.3.1.2-2(A)
220|222 2 7 16:32:46|NORESULT (auto-generated by TCC)
90|16:32:46|User AbortReview Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
We agree with the applicant and recommend that a waiver be granted
on the basis of a test suite deficiency.
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 2073
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority