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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1550 Actions


    Problem Report Number 1550
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0832
    Raised 2000-08-27 08:00
    Updated 2003-03-13 08:00
    Published 2000-09-18 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.0.4
    Test Identification CAPIbase/sendmsg 46
    Problem Summary TSD4U.00293 The test writes large buffers to the socket until no more can be written, then expects a sendmsg() of 12 bytes to block, but the system may be able to queue the 12 bytes.
    Problem Text
    The test is supposed to fill up the send socket and then test that send()
    blocks. However, on our implementation when line 4758

    s2 = setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &tp1, sizeof(tp1));

    is executed, the send buffer may be partly read. Thus when line 4785

    ret = sendmsg(s, &Shdr, 0);

    is executed the sendmsg() succeeds because there is now space in
    the buffer. sendmsg() returns the number of bytes sent as required by
    the XPG5 XNS specification. The size of the server receive buffer can
    be decreased. Since the server is not reading, its receive buffer can get
    filled. Then the server won't send the ACK that caused the partial read.

    Our implementation is set-up to maximize the size of the outgoing tcp segment,
    the test is failing because the low-water mark on the send buffer is not being
    exceeded. We believe the test should be change to the following:

    int size = 1 ;
    s2 = setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &tp1, sizeof(tp1));

    This would allow each byte of the data to be send and read as expected.
    Test Output
    TEST CASE: sendmsg

    TEST PURPOSE #46
    If the implementation supports a communications domain
    and a socket type and allows the option to be set:
    The SO_SNDTIMEO option shall define the amount of time
    to block because flow control prevents data from
    being sent for a call to ssize_t sendmsg(int socket,
    const struct msghdr *message, int flags).
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 9.3.155.180, port = 1565
    PREP: Wait for server to be ready
    PREP: Create a socket
    PREP: Connect socket to address 9.3.155.180, port 1565
    PREP: Check if option is supported
    PREP: Set O_NONBLOCK
    PREP: Fill up the server
    PREP: Clear O_NONBLOCK on socket
    PREP: Call setsockopt to set timeout value
    TEST: Call to send times out as set
    ERROR: Call to send did not timeout as expected
    Expected -1 Received: 12
    CLEANUP: Have server flush data
    PREP: Server: create socket
    PREP: Server: bind address 9.3.155.180, port 1565 to socket
    PREP: Server: listen on socket
    PREP: Server: notify client server is ready
    PREP: Server: accept connection
    INFO: Server: accepted connection from address 9.3.155.180, port 32926
    PREP: sleep_server: wait for parent to complete test
    INFO: sleep_server: parent completed test
    CLEANUP: sleep_server: flush data
    INFO: Server terminated
    INFO: Server received signal 15
    INFO: Server terminated
    46 FAIL

    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 fault in the test suite.

    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