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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 2063 Actions


    Problem Report Number 2063
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.1034
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1998-03-05 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/pthread_cancel 13
    Problem Summary TSD5TH.00031 This test is not testing required XPG5 behavior, the code does the following: destructors are set in t13_t1: rval = pthread_key_create( &key1, &t13_d1 ); rval = pthread_key_create( &key2, &t13_d2 ); T...
    Problem Text

    This test is not testing required XPG5 behavior, the code does the
    following:

    destructors are set in t13_t1:

    rval = pthread_key_create( &key1, &t13_d1 );

    rval = pthread_key_create( &key2, &t13_d2 );

    The destructors are

    void
    t13_d1( void *arg )
    {
    if ( T13_cflag == 1 )
    ++T13_dflag;
    }

    void
    t13_d2( void *arg )
    {
    if ( T13_cflag == 1 )
    ++T13_dflag;
    }

    However, XPG5 XSH on page 629 states the following:

    "Upon key creation, the value NULL is associated with the new key in all
    active threads. Upon thread creation, the value NULL is associated with all
    defined keys in the new thread. An optional destructor function may be
    associated with each key value. At thread exit, if a key value has a non-NULL
    destructor pointer, and the thread has a non-NULL value associated with
    that key, the function pointed to is called with the current associated
    value as its sole argument. The order of destructor calls is unspecified
    if more than one destructor exists for a thread when it exits. If, after
    all the destructors have been called for all non-NULL values with associated
    destructors, there are still some non-NULL values with associated destructors,
    then the process will be repeated. If, after at least
    PTHREAD_DESTRUCTOR_ITERATIONS iterations of destructor calls for outstanding




    non-NULL values, there are still some non-NULL values with associated
    destructors, implementations may stop calling destructors, or they may
    continue calling destructors until no non-NULL values with associated
    destructors exist, even though this might result in an infinite loop."

    The assertions destructors do not set NULL when called, therefore they
    are called PTHREAD_DESTRUCTOR_ITERATIONS (which is 4 on our implementation)
    times.

    Test Output
    ************************************************************************
    /tset/PTHR.os/all/pthread_cancel/T.pthread_cancel 13 Failed

    Test Description:
    # @(#)pthread_cancel13 1.2
    When a cancellation request is acted upon as a result of a call to
    the pthread_cancel() function,
    then the following actions occur in order:
    <PRE>
    a) each cancellation cleanup handler registered for the cancelled thread
    is called in last-registered, first-called order.
    b) each thread-specific data destructor function registered for the
    cancelled thread is called in unspecified order.
    c) the thread is terminated and a status of PTHREAD_CANCELED is
    made available to any threads joining with the canceled thread.
    </PRE>
    # @(#)pthread_cancel13R 1.1
    Posix Ref: Component PTHREAD_CANCEL Assertion 9945-1:1996 18.1.3-13(A)

    Test Information:
    When a cancellation request is acted upon as a result of a
    call to the pthread_cancel() function,
    then the following actions occur in order:
    a) each cancellation cleanup handler registered for the
    cancelled thread is called in last-registered, first-called order.
    b) each thread-specific data destructor function registered for
    the cancelled thread is called in unspecified order.




    c) the thread is terminated and a status of PTHREAD_CANCELED is
    made available to any threads joining with the canceled thread.
    Posix Ref: Component PTHREAD_CANCEL
    Assertion 9945-1:1996 18.1.3-13(A)
    T13_dflag, expected 2, got 8

    ************************************************************************

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We recommend that a waiver be granted on the basis of a TSD. This waiver
    applies only to implementations which fail when T13_dflag > 2.


    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