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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 2069 Actions


    Problem Report Number 2069
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.1040
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1998-03-24 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 6 8
    Problem Summary TSD5TH.00037 The tests for these cancellation points do not take into account the the API in question has to have been blocked to act on the cancellation request - otherwise the behavior is not defined. The XGP5 X...
    Problem Text
    The tests for these cancellation points do not take into account the the
    API in question has to have been blocked to act on the cancellation request -
    otherwise the behavior is not defined.

    The XGP5 XSH specification on page 54 states the following:

    "Whenever a thread has cancelability enabled and a cancellation request
    has been made with that thread as the target and the thread calls
    pthread_testcancel(), then the cancellation request is acted upon before
    pthread_testcancel() returns. If a thread has cancelability enabled
    and the thread has an asynchronous cancellation request pending and the
    thread is suspended at a cancellation point waiting for an event to
    occur, then the cancellation request will be acted upon. However, if the
    thread is suspended at a cancellation point and the event that it is
    waiting for occurs before the cancellation request is acted upon, it is
    unspecified whether the cancellation request is acted upon or whether
    the request remains pending and the thread resumes normal execution."

    This defines the case where a cancellation point API blocks, and then
    must handle the cancellation request. But a cancellation point API that
    never blocks (such as when close() is handed a bad file descriptor, and
    immediately returns EBADF) is not required to handle the cancellation
    request. Cancellation points are meant to prevent blocking actions from
    preventing a thread from ever being cancelled.

    The IEEE POSIX 1003.1-1996 Rationale (B.18.1.2) backs this intent up.

    The tests in question do not take this into account, and appear to assume that
    any entrance into the cancellation point API should act on the cancellation
    request.

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

    Test Description:
    A cancellation point shall occur when a thread is executing
    any one of the following functions:
    <PRE>
    aio_suspend()
    close()
    creat()
    fcntl() when the cmd argument is F_SETLKW
    fsync()
    mq_receive()
    mq_send()
    msync()
    nanosleep()
    open()
    pause()
    pthread_cond_timedwait()
    pthread_cond_wait()
    pthread_join()
    pthread_testcancel()
    read()
    sem_wait()
    sigsuspend()
    sigtimedwait()
    sigwait()




    sigwaitinfo()
    sleep()
    system()
    tcdrain()
    wait()
    waitpid()
    write()
    </PRE>
    Posix Ref: Component PTHREAD_CANCEL Assertion 9945-1:1996 18.1.2-6(A)

    Test Information:
    A cancellation point shall occur when a thread is executing
    any one of the following functions:
    aio_suspend()
    close()
    creat()
    fcntl() when the cmd argument is F_SETLKW
    fsync()
    mq_receive()
    mq_send()
    msync()
    nanosleep()
    open()
    pause()
    pthread_cond_timedwait()
    pthread_cond_wait()
    pthread_join()
    pthread_testcancel()
    read()
    sem_wait()
    sigsuspend()
    sigtimedwait()
    sigwait()
    sigwaitinfo()
    sleep()
    system()
    tcdrain()
    wait()
    waitpid()
    write()
    Posix Ref: Component PTHREAD_CANCEL
    Assertion 9945-1:1996 18.1.2-6(A)
    Testing close()
    close() failed
    Testing creat()
    creat() failed
    Testing fcntl()
    fcntl() failed
    Testing fsync()
    fsync() failed
    Testing msync()
    msync() failed




    Testing open()
    open() failed
    Testing pause()
    pause() passed
    Testing pthread_cond_timedwait()
    pthread_cond_timedwait() failed
    Testing pthread_cond_wait()
    pthread_cond_wait() failed
    Testing pthread_join()
    pthread_join() failed
    Testing pthread_testcancel()
    pthread_testcancel() passed
    Testing read()
    read() failed
    Testing sigsuspend()
    sigsuspend() passed
    Testing sigwait()
    sigwait() failed
    Testing sleep()
    sleep() passed
    Testing system()
    system() failed
    Testing tcdrain()
    tcdrain() failed
    Testing wait()
    wait() failed
    Testing waitpid()
    waitpid() failed
    Testing write()
    write() failed

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

    ************************************************************************
    /tset/PTHR.os/all/pthread_cancel/T.pthread_cancel 8 Failed

    Test Description:
    A cancellation point shall occur when a thread is executing
    any one of the following functions:
    <PRE>
    aio_suspend()
    close()
    creat()
    fcntl() when the cmd argument is F_SETLKW
    fsync()
    getmsg()
    getpmsg()
    lockf()
    mq_receive()
    mq_send()
    msgrcv()
    msgsnd()




    msync()
    nanosleep()
    open()
    pause()
    poll()
    pread()
    pthread_cond_timedwait()
    pthread_cond_wait()
    pthread_join()
    pthread_testcancel()
    putmsg()
    putpmsg()
    pwrite()
    read()
    readv()
    select()
    sem_wait()
    sigpause()
    sigsuspend()
    sigtimedwait()
    sigwait()
    sigwaitinfo()
    sleep()
    system()
    tcdrain()
    usleep()
    wait()
    wait3()
    waitid()
    waitpid()
    write()
    writev()
    </PRE>
    XCAE ref: Component PTHREAD_CANCEL Assertion 8(A)

    Test Information:
    A cancellation point shall occur when a thread is executing
    any one of the following XSH5 functions:
    aio_suspend()
    close()
    creat()
    fcntl() when the cmd argument is F_SETLKW
    fsync()
    getmsg()
    getpmsg()
    lockf()
    mq_receive()
    mq_send()
    msgrcv()
    msgsnd()
    msync()
    nanosleep()




    open()
    pause()
    poll()
    pread()
    pthread_cond_timedwait()
    pthread_cond_wait()
    pthread_join()
    pthread_testcancel()
    putmsg()
    putpmsg()
    pwrite()
    read()
    readv()
    select()
    sem_wait()
    sigpause()
    sigsuspend()
    sigtimedwait()
    sigwait()
    sigwaitinfo()
    sleep()
    system()
    tcdrain()
    usleep()
    wait()
    wait3()
    waitid()
    waitpid()
    write()
    writev()
    XCAE ref: Component PTHREAD_CANCEL
    Assertion 8(A)
    Testing getmsg()
    getmsg() failed
    Testing getpmsg()
    getpmsg() failed
    Testing lockf()
    lockf() failed
    Testing msgrcv()
    msgrcv() failed
    Testing msgsnd()
    msgsnd() failed
    Testing poll()
    poll() passed
    Testing pread()
    pread() failed
    Testing putmsg()
    putmsg() failed
    Testing putpmsg()
    putpmsg() failed
    Testing pwrite()
    pwrite() failed




    Testing readv()
    readv() failed
    Testing select()
    select() failed
    Testing sigpause()
    sigpause() failed
    Testing usleep()
    usleep() failed
    Testing wait3()
    wait3() failed
    Testing waitid()
    waitid() failed
    Testing writev()
    writev() failed

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

    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