|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 0121 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 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:
- View Report 0121
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority