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

The Open Brand -- Problem Reporting and Interpretations System


Problem Report 2528 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 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 #5
    Specification Base Definitions Issue 6
    Location in Spec system() Rationale on P1502, L46849-46850, and
    pclose() on XSH6, P864, L28132-28141
    Problem 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:

     

    Back   


Contact the Certification Authority