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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1379 Actions


    Problem Report Number 1379
    Submitter's Classification Specification problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0661
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1996-09-18 08:00
    Product Standard Sockets (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.1.0
    Test Identification Sockets/listen 4
    Problem Summary TSD4U.00156 This test may fail on implementations with varying listen backlog limits for different address families and or protocols.
    Problem Text
    Our implementation has different limits on the listen backlog for different
    address families (and potentially for different protocols in the same address
    family). The test relies on a single configuration variable VSU_LISTEN_LIMIT,
    making it impossible to configure VSU for our implementation.

    X/Open CAE specification, Networking Services, Issue 4 makes the following
    requirement for listen():

    "Implementations may limit the length of the socket's listen
    queue."

    The specification does not state that the same limit apply to all address
    families and protocols. For implementations that are based on STREAMS and
    on the STREAMS Transport Provider Interface (TPI) it might be common that
    each transport provider (hence each address family and protocol pair) have
    a different listen backlog limit since the TPI is designed to allow each
    transport provider control of both the listen queue and the listen backlog
    (and its limit). Even if the Streams TPI is not the basis of implementation,
    any independent implementation can also allow the same property for the
    "backlog" as the specification does not disallow it. Thus the backlog limit
    need not be a generic interface specified limit.

    The reason for the failure in this test is that in our implementation, the
    connect() on AF_UNIX socket sleeps until the peer has called accept(). In
    this test case, this particular connect() is a blocking connect and the peer
    never accepts this connection. The connect() therefore fails with errno set
    to EINTR when the test is interrupted. Modifying the test source such that
    there are different listen limits for different address families results in
    the test passing.

    We suggest that VSU test suite provide separate VSU_LISTEN_LIMIT
    configuration variables for each protocol and each address family in order
    to address this problem.
    Test Output
    TEST CASE: listen

    TEST PURPOSE #4
    If the implementation supports a communications domain
    and a connection-oriented socket type and limits the
    maximum backlog queue length:
    A call to int listen(int socket, int backlog) when
    backlog is larger than the implementation's maximum
    queue length shall set the length to the maximum
    supported value.
    PREP: Get VSU_LISTEN_LIMIT configuration variable
    INFO: VSU_LISTEN_LIMIT = 5
    PREP: Get VSU_CONNECT_TIMEOUT configuration variable
    PREP: Determine OPEN_MAX
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 129.146.85.57, port = 4793
    PREP: Child: create socket
    PREP: Child: bind to socket
    PREP: Child: listen on socket with backlog of LISTEN_LIMIT+10
    PREP: Child: tell parent ready
    PREP: Child: wait for parent to complete test
    CLEANUP: Child: close socket
    PREP: Create LISTEN_LIMIT+1 sockets
    PREP: Wait for child to be ready
    PREP: Connect LISTEN_LIMIT times to fill queue
    TEST: Next connect is rejected
    TEST: Return value
    TEST: errno value
    CLEANUP: Kill child
    TEST: AF_UNIX SOCK_STREAM
    PREP: Create test sockaddr_un: path = ../tmp/unix.zxlwp_
    PREP: Child: create socket
    PREP: Child: bind to socket
    PREP: Child: listen on socket with backlog of LISTEN_LIMIT+10
    PREP: Child: tell parent ready
    PREP: Child: wait for parent to complete test
    PREP: Create LISTEN_LIMIT+1 sockets
    PREP: Wait for child to be ready
    PREP: Connect LISTEN_LIMIT times to fill queue
    TEST: Next connect is rejected
    TEST: Return value
    TEST: errno value
    ERROR: connect call failed incorrectly, errno was 4(EINTR - Interrupted system call)
    should have been ETIMEDOUT or ECONNREFUSED
    4 FAIL

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    We agree this is a test suite deficiency in the test
    suite version(s) listed.

    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