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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 0121 Actions


    Problem Report Number 0121
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0121
    Raised 1993-11-10 08:00
    Updated 2003-03-13 08:00
    Published 1993-11-19 08:00
    Product Standard Internationalised System Calls and Libraries (XPG4)
    Certification Program The Open Brand certification program
    Test Suite VSX4 version 4.2.4
    Test Identification POSIX.os/devclass/i_ctty 9
    Problem Summary TSD4.121 i_ctty 9 fails because i_ctty 8 does not clean up the pseudo-tty loopback properly. When the i_ctty test cases are run without #8, it will pass. When i_ctty 8 is run with a pseudo-tty loopback, it doe...
    Problem Text
    i_ctty 9 fails because i_ctty 8 does not clean up the pseudo-tty loopback
    properly. When the i_ctty test cases are run without #8, it will pass.

    When i_ctty 8 is run with a pseudo-tty loopback, it does not fork off a
    separate process, unlike the other tests. The only way the background
    processes that simulate a loopback connection know when to clean up and die
    is when their parent dies. ptycon() forks off a separate process whose sole
    purpose is to wait for the parent to die and then kill the other two back-
    ground processes.

    Because i_ctty 8 does not fork off a process before opening the loopback,
    the background processes are not killed because their parent never dies.

    Additionally, i_ctty 8 closes both the slave sides of the pseudo-tty
    loopback. Each background process monitoring the master side receives a
    0 byte packet from STREAMS. Then it will write a EOF character to the other
    master device. Depending on the timing, one or both of the slaves will be
    closed when the EOFs are being written, which STREAMS will not allow. The
    write will be accepted, but the read by the other process will now get
    an EINVAL error. So one or both of these processes will exit with an error.
    Also, the process watching to see when the parent dies will still be alive,
    keeping both master sides open. When rdwr() is modified to not send an EOF
    character to the other master, the test case passes.

    When i_ctty 9 starts, it finds that there is already a loopback open,
    since the master sides are still open. It will open the slave sides correctly,
    but there is no background processes sending data to each of the slaves.
    So when the test case later tries to write an interrupt character from the
    loop side to the tty side, it does not get received by the tty side. This
    causes the test case to fail.

    Test Output
    **************************************************************************
    ************************************************************************
    /tset/POSIX.os/devclass/i_ctty/T.i_ctty 9 Failed

    Test Description:
    If the general terminal interface is supported:
    When a process closes all file descriptors associated with its
    controlling terminal and at least one other process has an open
    file descriptor which references the same controlling terminal,
    then the first process does not relinquish its controlling
    terminal.
    Posix Ref: Component Terminal Interface Assertion 7.1.1.3-09(C)

    Test Strategy:
    CREATE child process
    CHILD process:
    CREATE process session using setsid()
    OPEN and initialise terminal file and loopback file
    CREATE process pair
    CHILD process:
    SET signal action for SIGINT to signal catching function
    WRITE interrupt character to loop_fildes
    VERIFY that calling process received SIGINT
    PARENT process:
    CLOSE controlling terminal file
    SET signal action for SIGINT to signal catching function
    SLEEP until timeout or SIGINT raised
    VERIFY that SIGINT was received

    Test Information:
    Parent process did not receive SIGINT when child wrote
    interrupt character to controlling terminal
    process did not receive SIGINT when expected
    ************************************************************************
    **************************************************************************

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    This is accepted as 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