|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2528 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 2528.
Report 2528 Actions
Problem Report Number 2528 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.1308 Raised 2007-02-08 00:18 Updated 2007-02-12 14:12 Published 2007-02-12 14:12 Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03) Certification Program The Open Brand certification program Test Suite VSX4 version 4.6.5 Test Identification /tset/ANSI.os/genuts/system_X/T.system_X #59
/tset/XOPEN.os/genuts/pclose/T.pclose #5Specification Base Definitions Issue 6 Location in Spec system() Rationale on P1502, L46849-46850, and
pclose() on XSH6, P864, L28132-28141Problem Summary system_X #59 and pclose #5 assume they can intercept child process status Problem Text The system_X #59 and pclose #5 assertions are attempting to force
a condition where the process status for a spawned child is not
available to the system() or pclose() functions monitoring the child.
The tests try to force that condition by generating an alarm signal
in the parent before the child process has exited, and the alarm
handler does a "wait(0);", assuming it will intercept the child
process status before the system() or pclose() can do so.
However, there is no specific requirement that system() or pclose()
get a child process' status using waitpid() or wait(). Should an
alternative method be used internally by system() and pclose() to
acquire the child process status when the SIGCHLD signal occurs,
the tests' "wait(0);" will fail with errno set to ECHILD.
The test assertions should allow for the possibility that the
"wait(0);" in their alarm handlers may fail to intercept the
child process status, and if so, verify that the system() or pclose()
functions succeeded, and in that case issue an INSPECT status
for the test.Test Output ************************************
/tset/ANSI.os/genuts/system_X/T.system_X 59 Unresolved
Test Description:
When the termination status for the command language interpreter
cannot be obtained, then a call to system() returns -1 and sets
errno
to indicate the error.
Test Information:
wait() failed - errno 10 (ECHILD)
************************************
/tset/XOPEN.os/genuts/pclose/T.pclose 5 Unresolved
Test Description:
pclose() returns -1 and sets errno to ECHILD if the status of the
child can not be obtained.
Test Information:
wait() failed - errno 10 (ECHILD)Review Information
Review Type TSMA Review Start Date 2007-02-08 00:18 Last Updated 2007-02-08 18:32 Completed 2007-02-08 18:32 Status Complete Review Recommendation Test Suite Deficiency (TSD) Review Response This is accepted as a fault in the test suite.
Since it is not immediately clear that the behaviour of this
implementation is allowed by the standard, my reasoning is recorded below.
XSH6 section 2.3 Error Numbers states:
"Implementations may support additional errors not included in this
list, may generate errors included in this list under circumstances
other than those described here, or may contain extensions or
limitations that prevent some errors from occurring."
Thus wait() is allowed to generate an ECHILD error under circumstances
other than those described in section 2.3 ("A wait() or waitpid()
function was executed by a process that had no existing or unwaited-for
child process."). The circumstances that pertain in these tests are
that the implementation "knows" the child was created by a system() or
popen() call and thus should be reaped by system() or pclose()
respectively and not by wait().
Review Type SA Review Start Date 2007-02-08 18:32 Last Updated 2007-02-12 14:11 Completed 2007-02-12 14:11 Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion A test suite deficiency is granted.
Problem Reporting System Options:
- View Report 2528
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority