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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 2399 Actions


    Problem Report Number 2399
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.1239
    Raised 2004-06-17 23:45
    Updated 2004-06-23 01:08
    Published 2004-06-23 01:08
    Product Standard Internationalised System Calls and Libraries Extended V3 (UNIX 03)
    Certification Program The Open Brand certification program
    Test Suite VSU version 5.2.5
    Test Identification CAPI.os/ioprim/write/T.write 27
    CAPI.os/ioprim/writev/T.writev 72
    Specification Base Definitions Issue 6
    Problem Summary Tests for write 27 and writev 72 assume the server connection has
    entered closed state when it has not.
    Problem Text The problem with these assertions is that the client assumes the
    connection to the server entered the closed state.

    The essential sequence is

    1. client asks server to close the connection through some local IPC
    mechanism
    2. Server closes the connection and signals the client through some
    local IPC mechanism
    3. client sends data over the half closed connection
    4. client sends data over the half closed connection

    Action 3. by the client would force the server endpoint to close its end
    when it receives the data sent by the client and also force the server
    to send a TCP RST back to the client. When this RST is received by the
    client the client endpoint will also enter the closed state. However the
    time at which this would happen in relation to action 4. by the client
    is completely unknown, it is a race. If the TCP RST is received and
    processed by the client before 4, action 4 would generate a SIGPIPE,
    otherwise the TCP endpoint at the client has not yet entered the closed
    state and no SIGPIPE would be generated.

    The test is thus making some untenable assumptions about timing or that
    the action of a write() / send() / sendv()/ writev() are synchronous
    and the effect of the write / send call in 3. is immediately visible
    when the call returns. This is wrong.

    Section2.10.6, SUS v3,

    "successful return from an output function does not imply that the
    data
    has been delivered to the peer or even transmitted from the local
    system."

    The fact that in this case data does not go over the wire and that both
    the sender and receiver are local to the same machine does not change
    anything, as neither SUS nor TCP make any such distinctions.
    Test Output
    ****************************************************************************************************************
    /tset/CAPI.os/ioprim/write/T.write 27 Failed

    Test Description:
    Base Conditional Deviance
    If the implementation supports a communications domain and a
    stream-
    based socket type:
    EPIPE in errno, return -1, and a SIGPIPE signal is generated for
    the
    calling process on a call to ssize_t write(int fildes, const
    void
    *buf, size_t nbyte) when fildes refers to a socket of type
    SOCK_STREAM
    and the socket is no longer connected.

    Test Information:
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 192.29.85.23, port =
    1161
    PREP: Server: create socket
    PREP: Server: bind address 192.29.85.23, port 1161 to socket
    PREP: Server: listen on socket
    PREP: Server: notify client server is ready
    PREP: Server: accept connection
    INFO: Server: accepted connection from address 192.29.85.23,
    port 32888
    PREP: close_server: wait for client to be ready
    PREP: close_server: close connection
    PREP: close_server: tell client connection is closed
    INFO: Server terminated
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect socket to address 192.29.85.23, port 1161
    PREP: Tell server to close connection
    PREP: Wait for connection to close
    TEST: Send on closed connection
    TEST: SIGPIPE received
    ERROR: Expected SIGPIPE signal, count of SIGPIPE signals = 0
    CLEANUP: Send SIGTERM to server


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


    ****************************************************************************************************************
    /tset/CAPI.os/ioprim/writev/T.writev 72 Failed

    Test Description:
    Base Conditional Deviance
    If the implementation supports a communications domain and a
    stream-
    based socket type:
    EPIPE in errno, return -1, and a SIGPIPE signal is generated for
    the
    calling process on a call to ssize_t writev(int fildes, const
    struct
    iovec *iov, int iovcnt) when fildes refers to a socket of type
    SOCK_STREAM and the socket is no longer connected.

    Test Information:
    PREP: Allocate and initialize I/O buffers
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 192.29.85.23, port =
    3581
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect socket to address 192.29.85.23, port 3581
    PREP: Tell server to close connection
    PREP: Wait for connection to close
    TEST: Send on closed connection
    TEST: SIGPIPE received
    ERROR: Expected SIGPIPE signal, count of SIGPIPE signals = 0
    CLEANUP: Send SIGTERM to server
    PREP: Server: create socket
    PREP: Server: bind address 192.29.85.23, port 3581 to socket
    PREP: Server: listen on socket
    PREP: Server: notify client server is ready
    PREP: Server: accept connection
    INFO: Server: accepted connection from address 192.29.85.23,
    port 32892
    PREP: close_server: wait for client to be ready
    PREP: close_server: close connection
    PREP: close_server: tell client connection is closed
    INFO: Server terminated


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

    Review Information

    Review Type TSMA Review
    Start Date 2004-06-17 23:45
    Last Updated 2004-06-18 01:41
    Completed 2004-06-18 01:41
    Status Complete
    Review Recommendation Test Suite Deficiency (TSD)
    Review Response This is accepted as a fault in the test suite.

    Review Type SA Review
    Start Date 2004-06-18 00:41
    Last Updated 2004-06-23 00:48
    Completed 2004-06-23 00:48
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion This PR represents an agreed test suite deficiency

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority