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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 0267 Actions


    Problem Report Number 0267
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0267
    Raised 1997-10-09 08:00
    Updated 2003-03-13 08:00
    Published 1997-10-14 08:00
    Product Standard Internationalised System Calls and Libraries (XPG4)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.3.6
    Test Identification POSIX.os/procprim/sigconcept 35
    Problem Summary TSD4.267 We believe that there is a fault in the test suite for T.sigconcept test #35. Below is an explanation why we think this is so. There is currently a waiver for this test failure called PIN4.043, howeve...
    Problem Text
    We believe that there is a fault in the test suite for T.sigconcept test #35.
    Below is an explanation why we think this is so. There is currently a waiver
    for this test failure called PIN4.043, however, the output described with
    this waiver is different than the output we are getting. We are requesting
    that a new and separate waiver be granted.

    This note is to provide further clarification as to why we feel
    our failure of POSIX.os/procprim/sigconcept Test No: 35 fall
    under the interpretation of PIN4.043.

    Briefly to recap the test, and what occurs on our system running
    the test.

    A process forks. The child process sets up a handler for SIGCONT,
    while SIGTSTP remains with default disposition. The child then
    starts an open on a named pipe, with O_RDONLY mode, which causes
    the child to block on that operation, since there is no writer
    for the pipe.

    The parent then sends SIGTSTP to the child. After that, the
    parent attempts to open the named pipe with mode bits O_WRONLY and
    O_NONBLOCK. In our kernel, this open fails with ENXIO, which the
    test does not expect. This is the only failure that occurs
    in our run of sigconcept test no 35.

    The parent then sends SIGCONT to the child, and the child
    is interrupted from the system call with EINTR.

    Why the test works this way in our system is due to the fact
    that our kernel is designed to run in a multi-node multi-processor
    configuration. What we do in our kernel, when the child is sent
    SIGTSTP, is we make note of the fact that since the
    child is catching SIGCONT, the only possible outcome of the
    fifo open is to complete with EINTR. So we essentially fail the
    system call at that point (quite correctly) although the child
    remains suspended due to the SIGTSTP, until the SIGCONT is received.

    Thus, due to the childs (eventual, but certain) failure of the
    system call with EINTR, the parent's open also fails, with ENXIO,
    as required by POSIX and XPG4.

    As an aside, in an earlier exchange, there was some question as
    to whether the child failed with EINTR. Indeed it does, as is
    evidenced by this line from the system call trace:

    722352mS[ 1] T.sigconcept( 2568): END-open() errno = 4
    (Interrupted functioncall)

    It is possible that this line may not have been in the trace we sent,
    for which we apologize.

    Why does this fit under PIN4.043?

    The operation of our system in this instance is very similar to the
    operation of the system described in PIN4.043 - that is, we allow
    certain kernel operations to proceed after a process has been stopped.
    That our kernel chooses to complete the childs open request differently
    (and correctly - that is, terminating with EINTR) in this case than
    does the system described in PIN4.043 is really immaterial.

    The test itself expects the child to complete the open request
    successfully while in the stopped state (thus allowing the
    parent to complete its open request successfully), but to subsequently
    fail with EINTR when continued. Nowhere is this particular
    behavior described within POSIX or XPG4.

    We will close by quoting several passages from PIN4.043 that we feel
    are relevent to this issue.

    "Neither POSIX nor XPG4 define interactions between asynchronous kernel
    activities and process stopped status"

    "The state of stopped kernel threads is not defined by XPG4 and should
    not be relied on by applications."

    "Again in the entry for open(), XPG4 states that when opening a fifo
    with O_WRONLY and O_NONBLOCK set, the open() will return an error
    if no process currently has the file open for (in the above case, the
    VSX4 test assumes it will work even though the open for reading is
    incomplete)."


    Just to recap: our kernel allows certain events to proceed in the
    kernel, though the thread is in a stopped state, as does the system
    described in PIN4.043. Our system fails the childs open of the
    fifo with EINTR at the time of TSTP, even though the process
    remains suspended. This too is similar to the system described
    in PIN4.043, though in that system, they choose the complete the
    open system call successfully. This accounts for the different
    output from the test in our system.
    Test Output
    /tset/POSIX.os/procprim/sigconcept/T.sigconcept Test 35
    =======================================================
    520|589 35 71886 16 1|deletion reason - open() failed, errno 6
    220|589 35 2 00:21:10|UNRESOLVED

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We accept that this is a fault in the test suite and recommend that a
    waiver is granted on the grounds 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