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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 2073 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 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 Abort

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

     

    Back   


Contact the Certification Authority