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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 2474 Actions


    Problem Report Number 2474
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.1286
    Raised 2005-09-09 23:30
    Updated 2005-09-13 19:16
    Published 2005-09-13 19:16
    Product Standard Sockets (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 5.2.7LT
    Test Identification CAPI.os/sockets/connect 8
    Specification Networking Services Issue 4
    Location in Spec See Problem Text
    Linked Problem Reports 1648
    Problem Summary test8 fail because the listening(child) side had unsufficient queue
    depth (backlog=1,qlen=2) and forcing a 3rd NONBLOCKING connection to
    never be accepted , thus never showing up in a select() fdset writefds
    on the client side.
    Problem Text test8 fail because the listening(child) side had unsufficient queue
    depth (backlog=1,qlen=2) and forcing a 3rd NONBLOCKING connection to
    never be accepted , thus never showing up in a select() fdset writefds
    on the client side.

    The listen(socket,1) setup a backlog of and, as documented in PIN.X.0192
    and PIN.X.0205, a (3*backlog)/2+1 queue depth, hence 2 in this case.

    Considering queue depth=2 and considering the test is such that it
    force a sequence ( in time ) like this:
    parentClient connect(s3)=EINPROGRESS
    parentClient connect(s4)=EINPROGRESS
    parentClient connect(s)=EINPROGRESS
    childListener 1st accept() works:
    childlistener 2nd accept() works:
    childListener 3nd accept() works: TIMEOUT since queue was 2
    parentClient check for 3rd connect fd _only_ ie 's'

    Trouble is 's' was never accept()ed on the server because queue was 2.

    Setting listen(sc,2) ( hence a queuedepth=4 ) : the test pass.
    Checking for s3 and s4 presence ( in write fds ) sounds useful too.
    Testing for 's' presence in write fds cannot work if queue depth <= 2.

    So, we request Open Group to make this parameter (listen backlog ) a
    configurable variable ( ? VSX_LISTEN_BACKLOG=1 by default maybe ) so
    that we can assign a value that meets the purpose the above tests were
    designed to perform, with either an Interpretation or TSD to cover this
    situation.
    Test Output 200|0 8 14:11:09|TP Start
    520|0 8 00006668 1 1|PREP: Get VSU_CONNECT_TIMEOUT configuration variable
    520|0 8 00006668 1 2|TEST: AF_INET SOCK_STREAM
    520|0 8 00006668 1 3|PREP: Create test sockaddr_in: address =
    163.154.12.35, port = 3237
    520|0 8 00006666 1 1|PREP: Child: create socket
    520|0 8 00006666 1 2|PREP: Child: bind to socket
    520|0 8 00006666 1 3|PREP: Child: listen on socket with backlog of 1
    520|0 8 00006666 1 4|PREP: Child: tell parent ready
    520|0 8 00006666 1 5|PREP: Child: wait for parent to become ready
    520|0 8 00006666 1 6|PREP: Child: accept connections
    520|0 8 00006666 1 7|PREP: Child: notify parent connections completed
    520|0 8 00006666 1 8|PREP: Child: wait for parent to complete test
    520|0 8 00006668 2 1|PREP: Create three sockets
    520|0 8 00006668 2 2|PREP: Wait for child to be ready
    520|0 8 00006668 2 3|PREP: Connect once or twice to fill queue
    520|0 8 00006668 2 4|PREP: Set O_NONBLOCK
    520|0 8 00006668 2 5|TEST: connect returns with EINPROGRESS
    520|0 8 00006668 2 6|PREP: Notify child to accept
    520|0 8 00006668 2 7|TEST: Await notification connections completed
    520|0 8 00006668 2 8|TEST: Select reports socket ready to write
    520|0 8 00006668 2 9|ERROR: Bit for socket not set in writefds
    220|0 8 1 14:11:14|FAIL
    410|0 8 1 14:11:14|IC End

    Review Information

    Review Type TSMA Review
    Start Date 2005-09-09 23:30
    Last Updated 2005-09-12 22:47
    Completed 2005-09-12 22:47
    Status Complete
    Review Recommendation Test Suite Deficiency (TSD)
    Review Response This is accepted as a fault in the test suite.

    Note that the submitter's suggested fix of increasing the listen() queue
    length would negate the purpose of the test. The intention is that the
    third connection attempt succeeds asynchronously after a delay.
    Increasing the queue length would allow it to succeed straight away.

    The problem is that the test does not allow a long enough timeout on the
    third accept() call. The time allowed needs to be at least
    VSU_CONNECT_TIMEOUT.

    Review Type SA Review
    Start Date 2005-09-12 21:47
    Last Updated 2005-09-13 00:15
    Completed 2005-09-13 00:15
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion This PR is accepted as a Test Suite Deficciency. Howeverthe fix
    suggested by the submitter is not accepted as the TSMA believes this
    would invalidate the test purpose.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority