|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2537 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 2537.
Report 2537 Actions
Problem Report Number 2537 Submitter's Classification Test Suite problem State Resolved Resolution Rejected (REJ) Problem Resolution ID REJ.X.0681 Raised 2007-11-29 00:50 Updated 2007-12-05 22:43 Published 2007-12-05 22:43 Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03) Certification Program The Open Brand certification program Test Suite VSART version 1.1.7 Test Identification POSIX_art.os/synchobjects_rwlocks/pthread_rwlock_rdlock 12
POSIX_art.os/synchobjects_rwlocks/pthread_rwlock_tryrdlock 11Specification Base Definitions Issue 6 Location in Spec Line 2191-2192 of the combined PDF SUVs3_TC2 standard. Problem Summary Improper expectation that PTHREAD_SCOPE_PROCESS is supported on system
supporting _POSIX_THREAD_PRIORITY_SCHEDULING.Problem Text After correcting the following problem in the vrtxlib, it can be seen
that vrtx_pthread_create() is failing with an EPERM error.
Line 268 in SRC/common/vrtxlib/thrdsafe.c is
in_rpt("vrtx_pthread_create[%d] failed, error ", cnt, rval);
should be
in_rpt("vrtx_pthread_create[%d] failed, error: %d ", cnt, rval);
According to SUSv3 an EPERM error must be returned as follows:
ERRORS
The pthread_create( ) function shall fail if:
[EPERM] The caller does not have appropriate permission to set the
required scheduling parameters or scheduling policy.
Looking at the failing tests, the following attributes are being set in
the VRTX library function vrtx_pthread_create() for the thread:
PTHREAD_CREATE_JOINABLE
SCHED_RR
PTHREAD_EXPLICIT_SCHED
PTHREAD_SCOPE_PROCESS
The EPERM error is the result of trying to create the thread with
PTHREAD_SCOPE_PROCESS contention scope. PTHREAD_SCOPE_PROCESS is not
required to be supported by a UNIX03 conforming system. The SUSv3
Standard states the following
? Conforming implementations shall support the PTHREAD_SCOPE_PROCESS
scheduling contention scope, the PTHREAD_SCOPE_SYSTEM scheduling
contention scope, or both.
The pthread_attr_setscope() call is protected by checks on the support
for_POSIX_THREAD_PRIORITY_SCHEDULING. I have reviewed the standard for
any links between PTHREAD_SCOPE_PROCESS and
_POSIX_THREAD_PRIORITY_SCHEDULING and found none. The VRTX library is
in error for assuming PTHREAD_SCOPE_PROCESS is supported on all systems
supporting _POSIX_THREAD_PRIORITY_SCHEDULING.
I have opened this against VSART, but this is causing failures in the
VSTH Test Suite too.
Test Output
************************************************************************
/tset/POSIX_art.os/synchobjects_rwlocks/pthread_rwlock_rdlock/T.pthread_
rwlock_rdlock 12 Unresolved
Test Description:
If {_POSIX_READER_WRITER_LOCKS} is defined:
pthread_rwlock_rdlock(lock) is thread safe.
Test Information:
vrtx_pthread_create[0] failed, error
vrtx_pthread_create[1] failed, error
vrtx_pthread_create[2] failed, error
vrtx_pthread_create[3] failed, error
vrtx_pthread_create[4] failed, error
vrtx_pthread_create[5] failed, error
vrtx_pthread_create[6] failed, error
vrtx_pthread_create[7] failed, error
vrtx_pthread_create[8] failed, error
vrtx_pthread_create[9] failed, error
vrtx_pthread_create[10] failed, error
vrtx_pthread_create[11] failed, error
vrtx_pthread_create[12] failed, error
vrtx_pthread_create[13] failed, error
vrtx_pthread_create[14] failed, error
vrtx_pthread_create[15] failed, error
vrtx_pthread_join[0] failed, error 3
vrtx_pthread_join[1] failed, error 3
vrtx_pthread_join[2] failed, error 3
vrtx_pthread_join[3] failed, error 3
vrtx_pthread_join[4] failed, error 3
vrtx_pthread_join[5] failed, error 3
vrtx_pthread_join[6] failed, error 3
vrtx_pthread_join[7] failed, error 3
vrtx_pthread_join[8] failed, error 3
vrtx_pthread_join[9] failed, error 3
vrtx_pthread_join[10] failed, error 3
vrtx_pthread_join[11] failed, error 3
vrtx_pthread_join[12] failed, error 3
vrtx_pthread_join[13] failed, error 3
vrtx_pthread_join[14] failed, error 3
vrtx_pthread_join[15] failed, error 3
************************************************************************
************************************************************************
/tset/POSIX_art.os/synchobjects_rwlocks/pthread_rwlock_tryrdlock/T.pthre
ad_rwlock_tryrdlock 11 Unresolved
Test Description:
If {_POSIX_READER_WRITER_LOCKS} is defined:
pthread_rwlock_tryrdlock(lock) is thread safe.
Test Information:
vrtx_pthread_create[0] failed, error
vrtx_pthread_create[1] failed, error
vrtx_pthread_create[2] failed, error
vrtx_pthread_create[3] failed, error
vrtx_pthread_create[4] failed, error
vrtx_pthread_create[5] failed, error
vrtx_pthread_create[6] failed, error
vrtx_pthread_create[7] failed, error
vrtx_pthread_create[8] failed, error
vrtx_pthread_create[9] failed, error
vrtx_pthread_create[10] failed, error
vrtx_pthread_create[11] failed, error
vrtx_pthread_create[12] failed, error
vrtx_pthread_create[13] failed, error
vrtx_pthread_create[14] failed, error
vrtx_pthread_create[15] failed, error
vrtx_pthread_join[0] failed, error 3
vrtx_pthread_join[1] failed, error 3
vrtx_pthread_join[2] failed, error 3
vrtx_pthread_join[3] failed, error 3
vrtx_pthread_join[4] failed, error 3
vrtx_pthread_join[5] failed, error 3
vrtx_pthread_join[6] failed, error 3
vrtx_pthread_join[7] failed, error 3
vrtx_pthread_join[8] failed, error 3
vrtx_pthread_join[9] failed, error 3
vrtx_pthread_join[10] failed, error 3
vrtx_pthread_join[11] failed, error 3
vrtx_pthread_join[12] failed, error 3
vrtx_pthread_join[13] failed, error 3
vrtx_pthread_join[14] failed, error 3
vrtx_pthread_join[15] failed, error 3
************************************************************************
************************************************************************
/tset/POSIX_art.os/synchobjects_rwlocks/pthread_rwlock_trywrlock/T.pthre
ad_rwlock_trywrlock 9 Unresolved
Test Description:
If {_POSIX_READER_WRITER_LOCKS} is defined:
pthread_rwlock_trywrlock(lock) is thread safe.
Test Information:
vrtx_pthread_create[0] failed, error
vrtx_pthread_create[1] failed, error
vrtx_pthread_create[2] failed, error
vrtx_pthread_create[3] failed, error
vrtx_pthread_create[4] failed, error
vrtx_pthread_create[5] failed, error
vrtx_pthread_create[6] failed, error
vrtx_pthread_create[7] failed, error
vrtx_pthread_create[8] failed, error
vrtx_pthread_create[9] failed, error
vrtx_pthread_create[10] failed, error
vrtx_pthread_create[11] failed, error
vrtx_pthread_create[12] failed, error
vrtx_pthread_create[13] failed, error
vrtx_pthread_create[14] failed, error
vrtx_pthread_create[15] failed, error
vrtx_pthread_join[0] failed, error 3
vrtx_pthread_join[1] failed, error 3
vrtx_pthread_join[2] failed, error 3
vrtx_pthread_join[3] failed, error 3
vrtx_pthread_join[4] failed, error 3
vrtx_pthread_join[5] failed, error 3
vrtx_pthread_join[6] failed, error 3
vrtx_pthread_join[7] failed, error 3
vrtx_pthread_join[8] failed, error 3
vrtx_pthread_join[9] failed, error 3
vrtx_pthread_join[10] failed, error 3
vrtx_pthread_join[11] failed, error 3
vrtx_pthread_join[12] failed, error 3
vrtx_pthread_join[13] failed, error 3
vrtx_pthread_join[14] failed, error 3
vrtx_pthread_join[15] failed, error 3
************************************************************************
************************************************************************
/tset/POSIX_art.os/synchobjects_rwlocks/pthread_rwlock_unlock/T.pthread_
rwlock_unlock 9 Unresolved
Test Description:
If {_POSIX_READER_WRITER_LOCKS} is defined:
pthread_rwlock_unlock(lock) is thread safe.
Test Information:
vrtx_pthread_create[0] failed, error
vrtx_pthread_create[1] failed, error
vrtx_pthread_create[2] failed, error
vrtx_pthread_create[3] failed, error
vrtx_pthread_create[4] failed, error
vrtx_pthread_create[5] failed, error
vrtx_pthread_create[6] failed, error
vrtx_pthread_create[7] failed, error
vrtx_pthread_create[8] failed, error
vrtx_pthread_create[9] failed, error
vrtx_pthread_create[10] failed, error
vrtx_pthread_create[11] failed, error
vrtx_pthread_create[12] failed, error
vrtx_pthread_create[13] failed, error
vrtx_pthread_create[14] failed, error
vrtx_pthread_create[15] failed, error
vrtx_pthread_join[0] failed, error 3
vrtx_pthread_join[1] failed, error 3
vrtx_pthread_join[2] failed, error 3
vrtx_pthread_join[3] failed, error 3
vrtx_pthread_join[4] failed, error 3
vrtx_pthread_join[5] failed, error 3
vrtx_pthread_join[6] failed, error 3
vrtx_pthread_join[7] failed, error 3
vrtx_pthread_join[8] failed, error 3
vrtx_pthread_join[9] failed, error 3
vrtx_pthread_join[10] failed, error 3
vrtx_pthread_join[11] failed, error 3
vrtx_pthread_join[12] failed, error 3
vrtx_pthread_join[13] failed, error 3
vrtx_pthread_join[14] failed, error 3
vrtx_pthread_join[15] failed, error 3
************************************************************************
************************************************************************
****************************************************
/tset/POSIX_art.os/synchobjects_rwlocks/pthread_rwlock_wrlock/T.pthread_
rwlock_wrlock 8 Unresolved
Test Description:
If {_POSIX_READER_WRITER_LOCKS} is defined:
pthread_rwlock_wrlock(lock) is thread safe.
Test Information:
vrtx_pthread_create[0] failed, error
vrtx_pthread_create[1] failed, error
vrtx_pthread_create[2] failed, error
vrtx_pthread_create[3] failed, error
vrtx_pthread_create[4] failed, error
vrtx_pthread_create[5] failed, error
vrtx_pthread_create[6] failed, error
vrtx_pthread_create[7] failed, error
vrtx_pthread_create[8] failed, error
vrtx_pthread_create[9] failed, error
vrtx_pthread_create[10] failed, error
vrtx_pthread_create[11] failed, error
vrtx_pthread_create[12] failed, error
vrtx_pthread_create[13] failed, error
vrtx_pthread_create[14] failed, error
vrtx_pthread_create[15] failed, error
vrtx_pthread_join[0] failed, error 3
vrtx_pthread_join[1] failed, error 3
vrtx_pthread_join[2] failed, error 3
vrtx_pthread_join[3] failed, error 3
vrtx_pthread_join[4] failed, error 3
vrtx_pthread_join[5] failed, error 3
vrtx_pthread_join[6] failed, error 3
vrtx_pthread_join[7] failed, error 3
vrtx_pthread_join[8] failed, error 3
vrtx_pthread_join[9] failed, error 3
vrtx_pthread_join[10] failed, error 3
vrtx_pthread_join[11] failed, error 3
vrtx_pthread_join[12] failed, error 3
vrtx_pthread_join[13] failed, error 3
vrtx_pthread_join[14] failed, error 3
vrtx_pthread_join[15] failed, error 3
************************************************************************
************************************************************************
/tset/POSIX_art.os/synchobjects_rwlocks/pthread_rwlockattr_getpshared/T.
pthread_rwlockattr_getpshared 4 Unresolved
Test Description:
If {_POSIX_READER_WRITER_LOCKS} and
{_POSIX_THREAD_PROCESS_SHARED} are defined:
pthread_rwlockattr_getpshared(attr, pshared) is
thread safe.
Test Information:
vrtx_pthread_create[0] failed, error
vrtx_pthread_create[1] failed, error
vrtx_pthread_create[2] failed, error
vrtx_pthread_create[3] failed, error
vrtx_pthread_create[4] failed, error
vrtx_pthread_create[5] failed, error
vrtx_pthread_create[6] failed, error
vrtx_pthread_create[7] failed, error
vrtx_pthread_create[8] failed, error
vrtx_pthread_create[9] failed, error
vrtx_pthread_create[10] failed, error
vrtx_pthread_create[11] failed, error
vrtx_pthread_create[12] failed, error
vrtx_pthread_create[13] failed, error
vrtx_pthread_create[14] failed, error
vrtx_pthread_create[15] failed, error
vrtx_pthread_join[0] failed, error 3
vrtx_pthread_join[1] failed, error 3
vrtx_pthread_join[2] failed, error 3
vrtx_pthread_join[3] failed, error 3
vrtx_pthread_join[4] failed, error 3
vrtx_pthread_join[5] failed, error 3
vrtx_pthread_join[6] failed, error 3
vrtx_pthread_join[7] failed, error 3
vrtx_pthread_join[8] failed, error 3
vrtx_pthread_join[9] failed, error 3
vrtx_pthread_join[10] failed, error 3
vrtx_pthread_join[11] failed, error 3
vrtx_pthread_join[12] failed, error 3
vrtx_pthread_join[13] failed, error 3
vrtx_pthread_join[14] failed, error 3
vrtx_pthread_join[15] failed, error 3
************************************************************************
************************************************************************
****************************************************
/tset/POSIX_art.os/synchobjects_rwlocks/pthread_rwlockattr_setpshared/T.
pthread_rwlockattr_setpshared 7 Unresolved
Test Description:
If {_POSIX_READER_WRITER_LOCKS} and
{_POSIX_THREAD_PROCESS_SHARED} are defined:
pthread_rwlockattr_setpshared(attr, pshared) is
thread safe.
Test Information:
vrtx_pthread_create[0] failed, error
vrtx_pthread_create[1] failed, error
vrtx_pthread_create[2] failed, error
vrtx_pthread_create[3] failed, error
vrtx_pthread_create[4] failed, error
vrtx_pthread_create[5] failed, error
vrtx_pthread_create[6] failed, error
vrtx_pthread_create[7] failed, error
vrtx_pthread_create[8] failed, error
vrtx_pthread_create[9] failed, error
vrtx_pthread_create[10] failed, error
vrtx_pthread_create[11] failed, error
vrtx_pthread_create[12] failed, error
vrtx_pthread_create[13] failed, error
vrtx_pthread_create[14] failed, error
vrtx_pthread_create[15] failed, error
vrtx_pthread_join[0] failed, error 3
vrtx_pthread_join[1] failed, error 3
vrtx_pthread_join[2] failed, error 3
vrtx_pthread_join[3] failed, error 3
vrtx_pthread_join[4] failed, error 3
vrtx_pthread_join[5] failed, error 3
vrtx_pthread_join[6] failed, error 3
vrtx_pthread_join[7] failed, error 3
vrtx_pthread_join[8] failed, error 3
vrtx_pthread_join[9] failed, error 3
vrtx_pthread_join[10] failed, error 3
vrtx_pthread_join[11] failed, error 3
vrtx_pthread_join[12] failed, error 3
vrtx_pthread_join[13] failed, error 3
vrtx_pthread_join[14] failed, error 3
vrtx_pthread_join[15] failed, error 3
************************************************************************Review Information
Review Type TSMA Review Start Date 2007-11-29 00:50 Last Updated 2007-12-04 18:49 Completed 2007-12-04 18:49 Status Complete Review Recommendation Rejected (REJ) Review Response Agree with the recommendation from VSTH support team, thus suggest the
request is refused based on the following grounds:
The vrtx_threadsafe_test() library function allows for an ENOTSUP
return from pthread_attr_setscope(), which indicates that
PTHREAD_SCOPE_PROCESS is not supported. Unfortunately in XSH6
this error is listed as "may fail". This is considered to be a
mistake in the standard, and a defect report has been sent to the
Austin Group asking for it to be changed to "shall fail". (The
ENOTSUP error needs to be "shall fail" otherwise applications have
no portable way of determining whether PTHREAD_SCOPE_PROCESS is
supported.)
Despite the allowance in the current standard for
pthread_attr_setscope() to succeed when PTHREAD_SCOPE_PROCESS is
not supported, the implementation still does not conform. It is
returning an EPERM error from pthread_create(), but this error
relates to "scheduling parameters or scheduling policy", not to
contention scope. The contention scope is a scheduling
"attribute", but it is not a scheduling parameter (set using
pthread_attr_setschedparam()) or a scheduling policy (set using
pthread_attr_setschedpolicy()).
The submitter is strongly encouraged to change the implementation
so that pthread_attr_setscope() returns ENOTSUP to indicate that
PTHREAD_SCOPE_PROCESS is not supported. An alternative way to
make the implementation conform would be to have pthread_create()
return a different error number (one not listed on the
pthread_create() page in the standard) instead of EPERM, but
this would not conform to the next revision of the standard,
assuming that the Austin Group makes the requested change.
Review Type SA Review Start Date 2007-12-04 18:49 Last Updated 2007-12-05 00:59 Completed 2007-12-05 00:59 Status Complete Review Resolution Rejected (REJ) Review Conclusion Though we believe there may be a standards interpretation issue in this
area, we do not believe this is the direct cause of the non pass result
in this case. This PR is thus rejected as a Test Suite deficiency
Problem Reporting System Options:
- View Report 2537
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority