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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1228 Actions


    Problem Report Number 1228
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Rejected (REJ)
    Problem Resolution ID REJ.X.0430
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published null
    Product Standard Sockets (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.0.2
    Test Identification Base/close 11
    Problem Summary PG4U.00036 This was refused because it is a duplicate. See TSD4U.00010 instead.
    Problem Text
    In the setsockopt() specification in X/Open Networking Services, Issue 4,
    it states that when SO_LINGER socket option is set, the socket "lingers
    on a close() if data is present."

    In a AF_UNIX SOCK_STREAM connection, data are simply passed
    from a local socket to another socket. Data is always placed in the
    receiving socket's received buffer. Data would not be left
    in the sending socket's send buffer, subsequently the socket never
    needs to linger when it is closed.

    It is not always valid to assume that there will be pending data in the
    sending socket when you get an EWOULDBLOCK error when you call send().
    In a AF_UNIX SOCK_STREAM connection, the high water mark of the sending
    socket is set to 0 when the receiving socket's receive buffer is full.
    This causes the send() function to generate an EWOULDBLOCK error and yet
    there is no pending data in the sending side.

    I propose X/Open to modify this test case so that it will not test SO_LINGER
    timer for AF_UNIX SOCK_STREAM.
    Test Output
    TEST PURPOSE #11
    If the implementation supports a communications domain
    and a connection-oriented socket type:
    A successful call to int close(int fildes) for a
    connection-oriented socket with untransmitted data and
    the SO_LINGER option is set for the socket shall block
    for up to the current linger interval until all data
    is transmitted.
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 15.14.144.53, port = 4421
    PREP: Create socket
    PREP: Bind to socket
    PREP: Call listen for socket
    PREP: Signal child parent is ready
    PREP: Wait for child to complete
    TEST: AF_UNIX SOCK_STREAM
    PREP: Create test sockaddr_un: path = ../tmp/unix.a01181
    PREP: Child: wait for parent
    PREP: Create a socket
    PREP: Connect socket to address 15.14.144.53, port 4421
    PREP: Set 5 second linger interval
    TEST: Repeatedly send 1024 bytes until send blocks
    TEST: close() lingers
    PREP: Create socket
    PREP: Bind to socket
    PREP: Call listen for socket
    PREP: Signal child parent is ready
    PREP: Wait for child to complete
    PREP: Child: wait for parent
    PREP: Create a socket
    PREP: Bind address ../tmp/uclient.a01183 to socket
    PREP: Connect to address ../tmp/unix.a01181
    PREP: Set 5 second linger interval
    TEST: Repeatedly send 1024 bytes until send blocks
    TEST: close() lingers
    ERROR: close() did not linger the time specified
    Expected at least 5 seconds, actually 0 seconds
    11 FAIL

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We recommend this request be refused.

    This is the same as ruling TSD4U.00010.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Rejected (REJ)
    Review Conclusion
    This request is refused.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority