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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1097 Actions


    Problem Report Number 1097
    Submitter's Classification Minor System Fault
    State Resolved
    Resolution Minor System Fault (MSF)
    Problem Resolution ID MSF.X.0046
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1995-12-15 08:00
    Expiry Date 1996-12-15
    Product Standard Internationalised System Calls and Libraries Extended (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.0.2
    Test Identification CAPIsockets/poll 26 27 28
    Problem Summary MSF4U.00007 A temporary waiver is requested because because poll does not properly report POLLOUT/POLLIN revents. A workaround is available.
    Problem Text
    A temporary waiver is requested because because poll does not properly
    report POLLOUT/POLLIN revents. A workaround is available.

    The following test cases are being reported:-
    /tset/CAPIsockets/fconnect/fconnect1
    /tset/CAPIbase/fpoll/fpoll26
    /tset/CAPIbase/fpoll/fpoll27
    /tset/CAPIbase/fpoll/fpoll28

    This waiver request is to cover the case where the poll() function does not
    return the POLLOUT/POLLIN flags in revents when the socket is ready for
    writing/reading.

    A workaround is to change the value of POLLWRNORM to 0x0104, and the value
    of POLLRDNORM to 0x0041 in poll.h.

    This failure does not affect program portability because portable applications
    will work correctly with the workaround in place.
    Test Output
    /tset/CAPIsockets/fconnect/fconnect1 14:52:17|TC Start, scenario ref 3-1, I Cs
    {8}

    TCM Start
    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 8
    If the implementation supports a communications domain
    and a connection-oriented socket type:
    After a connection is asynchronously established due
    to a call to int connect(int socket, const struct
    sockaddr *address, size_t address_len) select() and
    poll() shall indicate socket is ready for writing.
    PREP: Get VSU_CONNECT_TIMEOUT configuration variable
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 15.14.144.53, port = 1717
    PREP: Create three sockets
    PREP: Wait for child to be ready
    PREP: Connect twice to fill queue
    PREP: Set O_NONBLOCK
    TEST: connect returns with EINPROGRESS
    PREP: Notify child to accept
    TEST: Await notification connections completed
    TEST: Select reports socket ready to write
    TEST: Poll reports socket ready to write
    ERROR: Write ready not indicated in revents
    PREP: Child: create socket
    PREP: Child: bind to socket
    PREP: Child: listen on socket with backlog of 2
    PREP: Child: tell parent ready
    PREP: Child: wait for parent to become ready
    PREP: Child: accept queued connections
    PREP: Child: accept connection being asynchronously establishe d
    PREP: Child: notify parent connections completed
    PREP: Child: wait for parent to complete test
    FAIL
    IC End
    TC End

    /tset/CAPIbase/fpoll/fpoll26 14:37:35|TC Start, scenario ref 3-1, ICs {26}
    TCM Start
    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 26
    On a call to int poll(struct pollfd fds[], nfds_t
    nfds, int timeout) regular files shall always poll
    TRUE for reading and writing.
    PREP: Obtain file descriptor for regular file
    TEST: Regular file polls TRUE for reading
    ERROR: poll returned incorrect value
    Expected 1
    Received 0
    FAIL
    IC End
    TC End

    /tset/CAPIbase/fpoll/fpoll27 15:42:37|TC Start, scenario ref 3-1, ICs {27}
    TCM Start
    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 27
    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: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 15.0.65.45, port = 382
    9
    PREP: Child: wait for parent
    PREP: Create a socket
    PREP: Connect socket to address 15.0.65.45, port 3829
    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 rea
    dy to read
    ERROR: File descriptor not ready to read
    Member revents Expected: 192 Received: 0
    CLEANUP: Close sockets, kill child
    |TEST: AF_UNIX SOCK_STREAM
    |PREP: Create test sockaddr_un: path = ../tmp/unix.a04419
    PREP: Child: wait for parent
    PREP: Create a socket
    PREP: Bind address ../tmp/uclient.a04421 to socket
    PREP: Connect to address ../tmp/unix.a04419
    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
    TEST: poll() on a file descriptor with connection indicates rea
    dy to read
    ERROR: File descriptor not ready to read
    Member revents Expected: 192 Received: 0
    CLEANUP: Close sockets, kill child
    FAIL
    IC End

    /tset/CAPIbase/fpoll/fpoll28 15:45:10|TC Start, scenario ref 3-1, ICs {28}
    TCM Start
    IC Start
    TP Start
    SPEC1170TESTSUITE CASE 28
    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 connecting
    asynchronously shall indicate that it is ready for
    writing once a connection has been established.
    TEST: AF_INET SOCK_STREAM
    PREP: Create test sockaddr_in: address = 15.0.65.45, port = 15

    PREP: Server: create socket
    PREP: Server: bind address 15.0.65.45, port 1517 to socket
    PREP: Server: listen on socket
    PREP: Server: notify client server is ready
    PREP: Server: accept connection
    INFO: Server: accepted connection from address 15.0.65.45, por
    1061
    PREP: echo_server: read and echo data
    INFO: Server received signal 15
    INFO: Server terminated
    PREP: Wait for server to be ready
    TEST: poll indicates file descriptor ready for writing
    PREP: Create a socket
    PREP: Connect socket to address 15.0.65.45, port 1517
    ERROR: File descriptor not ready to read
    Member revents Expected: 256 Received: 0
    CLEANUP: Close socket, kill server
    TEST: AF_UNIX SOCK_STREAM
    PREP: Create test sockaddr_un: path = ../tmp/unix.a04475
    PREP: Wait for server to be ready
    TEST: poll indicates file descriptor ready for writing
    PREP: Create a socket
    PREP: Connect to address ../tmp/unix.a04475
    ERROR: File descriptor not ready to read
    Member revents Expected: 256 Received: 0
    CLEANUP: Close socket, kill server
    PREP: Server: create socket
    PREP: Server: bind address ../tmp/unix.a04475 to socket
    PREP: Server: listen on socket
    PREP: Server: notify client ready to accept
    PREP: Server: accept connection
    INFO: Server: accepted connection from address
    PREP: echo_server: read and echo data
    INFO: Server received signal 15
    INFO: Server terminated
    FAIL
    IC End
    End

    Review Information

    Review Type TSMA Review
    Start Date null
    Completed null
    Status Complete
    Review Recommendation No Resolution Given
    Review Response
    Since a workaround is available, a temporary waiver for a minor system
    fault is acceptable to us.

    Review Type SA Review
    Start Date null
    Completed null
    Status Complete
    Review Resolution Minor System Fault (MSF)
    Review Conclusion
    A Temporary Waiver is granted.

    Problem Reporting System Options:

     

    Back   


Contact the Certification Authority