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