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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 2403 Actions


    Problem Report Number 2403
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.1242
    Raised 2004-06-22 01:38
    Updated 2004-06-25 19:09
    Published 2004-06-25 19:09
    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/poll/T.poll 27
    Specification Base Definitions Issue 6
    Problem Summary The test assumes that an action performed by a transport endpoint is
    synchronously visible to the peer endpoint, as soon as the system call
    that performed the action returned.
    Problem Text The problem with this assertion is that the test assumes that an action
    performed by a transport endpoint is synchronously visible to the peer
    endpoint, as soon as the system call that performed the action returned.

    In this test the essential sequence is

    1. client does a non-blocking TCP connect to the server
    2. client signals the server via an IPC mechanism
    3. server polls to see if the connect indication has arrived.

    Section 2.10.7, SUSv3 says:

    "The connect() function initiates a connection and shall return
    without blocking when O_NONBLOCK is set; it shall return the error
    [EINPROGRESS] to indicate that the connection was initiated
    successfully, but that it has not yet completed."

    The connect function returns immediately after initiating the connect.
    i.e. the connect function returns after taking steps to initiate a SYN.
    It does not even mean the SYN has gone over the wire. The fact that the
    the 2 endpoints are local to the machine and that the SYN does not have
    to go over the wire in this particular test case is not relevant, since
    neither TCP nor the Single Unix Spec make any such distinctions.

    Step 2. is accomplished using local IPC mechanisms in this case using
    semaphores, and is synchronous.

    Even if the O_NONBLOCK were not set, successful return from connect only
    indicates transport level success. It does not imply that higher layers
    at the peer have been notified of the connect indication. Thus it is
    incorrect to verify the arrival of a connect indication using poll()
    without introducing races.
    Test Output
    ************************************************************************
    /tset/CAPI.os/ioprim/poll/T.poll 27 Failed

    Test Description:
    Base Conditional Conformance
    If the implementation supports a communications domain and a
    connection-oriented socket type:
    On a call to int poll(struct pollfd fds[], nfds_t nfds, int
    timeout) a
    socket that is listening for connections shall indicate that it
    is
    ready for reading once connections are available.

    Test Information:
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 192.29.85.23, port =
    1373
    PREP: Child: wait for parent
    PREP: Create a socket
    PREP: Get fcntl flags for socket
    PREP: Set O_NONBLOCK for socket
    PREP: Connect socket to address 192.29.85.23, port 1373
    PREP: Child: wait for parent to complete
    CLEANUP: Child: close socket
    PREP: Create socket
    PREP: Bind to socket
    PREP: Call listen for socket
    PREP: Signal child parent is ready
    PREP: Wait for child to connect
    TEST: poll() on a file descriptor with connection indicates
    ready to read
    ERROR: File descriptor not ready to read
    Member revents Expected: 1 Received: 0
    CLEANUP: Close sockets, kill child
    TEST: AF_UNIX SOCK_STREAM
    PREP: Create test sockaddr_un: path = ../tmp/unix.tAaW7a
    PREP: Create socket
    PREP: Bind to socket
    PREP: Call listen for socket
    PREP: Signal child parent is ready
    TEST: poll() on a file descriptor with connection indicates
    ready to read
    CLEANUP: Close sockets, kill child
    PREP: Child: wait for parent
    PREP: Create a socket
    PREP: Bind address ../tmp/uclient.wAaa8a to socket
    PREP: Get fcntl flags for socket
    PREP: Set O_NONBLOCK for socket
    PREP: Connect to address ../tmp/unix.tAaW7a
    PREP: Child: wait for parent to complete
    CLEANUP: Child: close socket


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

    Review Information

    Review Type TSMA Review
    Start Date 2004-06-22 01:38
    Last Updated 2004-06-24 17:44
    Completed 2004-06-24 17:44
    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-24 16:44
    Last Updated 2004-06-25 02:22
    Completed 2004-06-25 02:22
    Status Complete
    Review Resolution Test Suite Deficiency (TSD)
    Review Conclusion This PR is an agreed test suite deficiency.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority