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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1645 Actions


    Problem Report Number 1645
    Submitter's Classification Specification problem
    State Resolved
    Resolution Permanent Interpretation (PIN)
    Problem Resolution ID PIN.X.0202
    Raised 2002-01-30 08:00
    Updated 2003-03-13 08:00
    Published 2002-03-01 08:00
    Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98)
    Certification Program The Open Brand certification program
    Test Suite VSU version 5.1.2
    Test Identification CAPI.os/ioprim/close 12
    Specification System Interfaces and Headers Issue 5
    Location in Spec See Problem Text
    Problem Summary PIN4U.00068 On last close of a master pty, SIGHUP may be sent to just the controlling process instead of the foreground process group
    Problem Text
    The assertion above tests the following part of close() from XSH5:

    "If FILDES refers to the master side of a pseudo-terminal, and this is the
    last close, a SIGHUP signal is sent to the process group, if any, for which
    the slave side of the pseudo-terminal is the controlling terminal. It is
    unspecified whether closing the master side of the pseudo-terminal flushes
    all queued input and output."

    This assertion is a recent change to the test suite in response to
    changes made to the spec as a result of corridgendum U053F,
    TSD4U.00295. The prior text in XSH4 omitted the "and this is the last
    close,". The current text takes care of the problem of sending SIGHUP
    on any close, instead of the just on the last close. But, this doesn't
    match historic PTY behavior in 4.3BSD or UNIX SVR4. (On those systems,
    the SIGHUP signal is sent to the controlling process associated with a
    PTY device; not directly to the entire process group.)

    We believe that the behavior of pseudo-terminals and regular terminals
    should behave as much alike as possible in this case. The behavior for
    regular terminals specified in SUSv2, XBD5, section 9.1.10 Modem
    Disconnect is:
    "If a modem disconnect is detected by the terminal interface for a
    controlling terminal, and if CLOCAL is not set in the c_cflag field
    for the terminal, the SIGHUP signal is sent to the controlling
    process for which the terminal is the controlling terminal."
    This mirrors the requirements from POSIX.1-1996, subclause 7.1.1.10
    (Modem Disconnect).

    We believe that historic practice (and many current implementations)
    would be better described by changing part of the description from
    close() above to:
    "If FILDES refers to the master side of a pseudo-terminal, and this
    is the last close, a SIGHUP signal is sent to the controlling
    process, if any, for which the slave side of the pseudo-terminal is
    the controlling terminal. It is unspecified whether closing the
    master side of the pseudo-terminal flushes all queued input and
    output."

    We request a waiver allowing either the behavior specified in XSH5 or
    that described above until a corrigendum corrects this problem.
    Test Output
    ************************************************************************
    /tset/CAPI.os/ioprim/close/T.close 12 Failed

    Test Description:
    Base Required Conformance
    A successful call to int close(int fildes) when fildes refers to the
    master side of a pseudo-terminal, and this is the last close, shall
    cause a SIGHUP signal to be sent to the process group, if any, for
    which the slave side of the pseudo-terminal is the controlling
    terminal.

    Test Information:
    PREP: Open master side of pseudo terminal
    PREP: Create session
    PREP: Close master side (in session leader)
    PREP: Open slave side as controlling terminal
    PREP: Create child process in session
    PREP: Capture SIGHUP signals in child
    TEST: Await a SIGHUP in the child
    PREP: Capture SIGHUP signals in session leader
    TEST: Await a SIGHUP in session leader
    INFO: SIGHUP received in session leader
    PREP: Wait for child to terminate
    TEST: Close of master sends SIGHUP to slave side session
    ERROR: SIGHUP was sent to 1 processes in group, expected 2

    ************************************************************************

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    Since the intention of corrigenda item U013/25 was to correct a
    mismatch between the XSH4v2 specification and historic practice, but
    only part of the mismatch had been identified at the time, it seems
    likely that the Base Working Group will want to authorise an
    additional corrigenda item to correct the remaining part of the
    mismatch, that has now come to light through alignment of the test
    with the original corrigenda item.

    Therefore this request should be forwarded to the working group for
    review.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution No Resolution Given
    Review Conclusion
    This request is being forwarded to the BWG for review.

    Review Type Expert Group Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution No Resolution Given
    Review Conclusion
    The Base Working group agrees with the submitter that a permanent
    interpretation be granted and that either behavior be permitted for this
    issue of the specification.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Permanent Interpretation (PIN)
    Review Conclusion
    A Permanent Interpretation is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority