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

The Open Brand -- Problem Reporting and Interpretations System


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


Report 1467 Actions


    Problem Report Number 1467
    Submitter's Classification Test Suite problem
    State Resolved
    Resolution Test Suite Deficiency (TSD)
    Problem Resolution ID TSD.X.0749
    Raised 1970-01-01 08:00
    Updated 2003-03-13 08:00
    Published 1995-11-08 08:00
    Product Standard Sockets (UNIX 95)
    Certification Program The Open Brand certification program
    Test Suite VSU version 4.0.2
    Test Identification base/writev 71 72
    Problem Summary TSD4U.00064 This test may fail on implementations where writev() does not fail the first time it is called after the peer has shutdown the connection.
    Problem Text
    This test may fail on implementations where writev() does not
    fail the first time it is called after the peer has shutdown
    the connection.

    The test case assumes that by either calling close() or
    shutdown(s, SHUT_RDWR) the connection will be disconnected,
    subsequently the test case expects to receive a SIGPIPE signal
    and errno set to EPIPE when it calls writev() after getting a
    shutdown or close confirmation from its son process.

    This assumption is not univerally apllicable. This behavior
    after calling close() or shutdown() is actually protocol
    dependent. Such an assumption is incorrect for TCP. As
    specified in RFC 793, TCP uses a graceful release strategy on
    shutdown() or close(). The application that issues a shutdown()
    or close() will trigger the TCP connection half on the local side
    to send a FIN packet to its peer on the remote system. The local
    TCP connection half will go into a FIN-WAIT-2 state. It will
    stay in the FIN-WAIT-2 state indefinitely until it also receives
    a FIN packet from its remote peer connection half. The remote
    peer connection half only sends a FIN packet when the remote
    socket application also calls shutdown() or close().

    Some TCP implementation may choose to send a RESET packet when it
    receives a data packet from the remote connection half provided
    the local TCP connection half has been disconnected from any
    application. In that case, the remote socket application may
    eventually see EPIPE error after several writev operations, but
    definitely not on the first writev operation. I do not think a
    Standard test can depend on such implementation dependent
    behavior either. I propose X/Open should remove this test case
    for AF_INET SOCK_STREAM.
    Test Output
    400|1 71 1 14:39:02|IC Start
    200|1 1 14:39:02|TP Start
    520|1 1 8315 1 1|SPEC1170TESTSUITE CASE 71
    520|1 1 8315 1 2|If the implementation supports a communications domain
    520|1 1 8315 1 3|and a connection-oriented socket type:
    520|1 1 8315 1 4|EPIPE in errno and return -1 on a call to ssize_t
    520|1 1 8315 1 5|writev(int fildes, const struct iovec *iov, int iovcnt) when
    520|1 1 8315 1 6|fildes refers to a socket that is connection-oriented
    520|1 1 8315 1 7|and is no longer connected.
    520|1 1 8328 1 1|PREP: Allocate and initialize I/O buffers
    520|1 1 8328 1 2|TEST: AF_INET SOCK_STREAM
    520|1 1 8328 1 3|PREP: Create test sockaddr_in: address = 16.69.224.161, port = 3085
    520|1 1 8329 1 1|PREP: Server: create socket
    520|1 1 8329 1 2|PREP: Server: bind address 16.69.224.161, port 3085 to socket
    520|1 1 8329 1 3|PREP: Server: listen on socket
    520|1 1 8329 1 4|PREP: Server: notify client server is ready
    520|1 1 8329 1 5|PREP: Server: accept connection
    520|1 1 8329 1 6|INFO: Server: accepted connection from address 16.69.224.161, port 2077
    520|1 1 8329 1 7|PREP: close_server: wait for client to be ready
    520|1 1 8329 1 8|PREP: close_server: close connection
    520|1 1 8329 1 9|PREP: close_server: tell client connection is closed
    520|1 1 8329 1 10|INFO: Server terminated
    520|1 1 8328 2 1|PREP: Wait for server to be ready
    520|1 1 8328 2 2|PREP: Create a socket
    520|1 1 8328 2 3|PREP: Connect socket to address 16.69.224.161, port 3085
    520|1 1 8328 2 4|PREP: Tell server to close connection
    520|1 1 8328 2 5|PREP: Wait for connection to close
    520|1 1 8328 2 6|TEST: Write on closed connection
    520|1 1 8328 2 7|TEST: Return value
    520|1 1 8328 2 8|ERROR: writev call succeeded unexpectedly, returned 64
    520|1 1 8328 2 9|CLEANUP: Send SIGTERM to server
    220|1 1 1 14:39:04|FAIL
    410|1 71 1 14:39:04|IC End

    400|4 72 1 14:39:08|IC Start
    200|4 1 14:39:08|TP Start
    520|4 1 8345 1 1|SPEC1170TESTSUITE CASE 72
    520|4 1 8345 1 2|If the implementation supports a communications domain
    520|4 1 8345 1 3|and a stream-based socket type:
    520|4 1 8345 1 4|EPIPE in errno, return -1, and a SIGPIPE signal is
    520|4 1 8345 1 5|generated for the calling process on a call to ssize_t
    520|4 1 8345 1 6|writev(int fildes, const struct iovec *iov, int iovcnt) when
    520|4 1 8345 1 7|fildes refers to a socket of type SOCK_STREAM and the
    520|4 1 8345 1 8|the socket is no longer connected.
    520|4 1 8339 1 1|PREP: Allocate and initialize I/O buffers
    520|4 1 8339 1 2|TEST: AF_INET SOCK_STREAM
    520|4 1 8339 1 3|PREP: Create test sockaddr_in: address = 16.69.224.161, port = 4185
    520|4 1 8354 1 1|PREP: Server: create socket
    520|4 1 8354 1 2|PREP: Server: bind address 16.69.224.161, port 4185 to socket
    520|4 1 8354 1 3|PREP: Server: listen on socket
    520|4 1 8354 1 4|PREP: Server: notify client server is ready
    520|4 1 8354 1 5|PREP: Server: accept connection
    520|4 1 8354 1 6|INFO: Server: accepted connection from address 16.69.224.161, port 2078
    520|4 1 8354 1 7|PREP: close_server: wait for client to be ready
    520|4 1 8354 1 8|PREP: close_server: close connection
    520|4 1 8354 1 9|PREP: close_server: tell client connection is closed
    520|4 1 8354 1 10|INFO: Server terminated
    520|4 1 8339 2 1|PREP: Wait for server to be ready
    520|4 1 8339 2 2|PREP: Create a socket
    520|4 1 8339 2 3|PREP: Connect socket to address 16.69.224.161, port 4185
    520|4 1 8339 2 4|PREP: Tell server to close connection
    520|4 1 8339 2 5|PREP: Wait for connection to close
    520|4 1 8339 2 6|TEST: Send on closed connection
    520|4 1 8339 2 7|TEST: SIGPIPE received
    520|4 1 8339 2 8|ERROR: Expected SIGPIPE signal, count of SIGPIPE signals = 0
    520|4 1 8339 2 9|CLEANUP: Send SIGTERM to server
    220|4 1 1 14:39:11|FAIL
    410|4 72 1 14:39:11|IC End

    400|1 26 1 14:38:44|IC Start
    200|1 1 14:38:44|TP Start
    520|1 1 8244 1 1|SPEC1170TESTSUITE CASE 26
    520|1 1 8244 1 2|If the implementation supports a communications domain
    520|1 1 8244 1 3|and a connection-oriented socket type:
    520|1 1 8244 1 4|EPIPE in errno and return -1 on a call to ssize_t
    520|1 1 8244 1 5|write(int fildes, const void *buf, size_t nbyte) when
    520|1 1 8244 1 6|fildes refers to a socket that is connection-oriented
    520|1 1 8244 1 7|and the peer is no longer connected.
    520|1 1 8255 1 1|TEST: AF_INET SOCK_STREAM
    520|1 1 8255 1 2|PREP: Create test sockaddr_in: address = 16.69.224.161, port = 3697
    520|1 1 8251 1 1|PREP: Server: create socket
    520|1 1 8251 1 2|PREP: Server: bind address 16.69.224.161, port 3697 to socket
    520|1 1 8251 1 3|PREP: Server: listen on socket
    520|1 1 8251 1 4|PREP: Server: notify client server is ready
    520|1 1 8251 1 5|PREP: Server: accept connection
    520|1 1 8251 1 6|INFO: Server: accepted connection from address 16.69.224.161, port 2075
    520|1 1 8251 1 7|PREP: close_server: wait for client to be ready
    520|1 1 8251 1 8|PREP: close_server: close connection
    520|1 1 8251 1 9|PREP: close_server: tell client connection is closed
    520|1 1 8251 1 10|INFO: Server terminated
    520|1 1 8255 2 1|PREP: Wait for server to be ready
    520|1 1 8255 2 2|PREP: Create a socket
    520|1 1 8255 2 3|PREP: Connect socket to address 16.69.224.161, port 3697
    520|1 1 8255 2 4|PREP: Tell server to close connection
    520|1 1 8255 2 5|PREP: Wait for connection to close
    520|1 1 8255 2 6|TEST: Write on closed connection
    520|1 1 8255 2 7|TEST: Return value
    520|1 1 8255 2 8|ERROR: write call succeeded unexpectedly, returned 5
    520|1 1 8255 2 9|CLEANUP: Send SIGTERM to server
    220|1 1 1 14:38:46|FAIL
    410|1 26 1 14:38:46|IC End

    400|4 27 1 14:38:49|IC Start
    200|4 1 14:38:49|TP Start
    520|4 1 7250 1 1|SPEC1170TESTSUITE CASE 27
    520|4 1 7250 1 2|If the implementation supports a communications domain
    520|4 1 7250 1 3|and a stream-based socket type:
    520|4 1 7250 1 4|EPIPE in errno, return -1, and a SIGPIPE signal is
    520|4 1 7250 1 5|generated for the calling process on a call to ssize_t
    520|4 1 7250 1 6|write(int fildes, const void *buf, size_t nbyte) when
    520|4 1 7250 1 7|fildes refers to a socket of type SOCK_STREAM and the
    520|4 1 7250 1 8|socket is no longer connected.
    520|4 1 8220 1 1|TEST: AF_INET SOCK_STREAM
    520|4 1 8220 1 2|PREP: Create test sockaddr_in: address = 16.69.224.161, port = 4153
    520|4 1 8220 2 1|PREP: Wait for server to be ready
    520|4 1 8220 2 2|PREP: Create a socket
    520|4 1 8220 2 3|PREP: Connect socket to address 16.69.224.161, port 4153
    520|4 1 8220 2 4|PREP: Tell server to close connection
    520|4 1 8220 2 5|PREP: Wait for connection to close
    520|4 1 8220 2 6|TEST: Send on closed connection
    520|4 1 8220 2 7|TEST: SIGPIPE received
    520|4 1 8220 2 8|ERROR: Expected SIGPIPE signal, count of SIGPIPE signals = 0
    520|4 1 8220 2 9|CLEANUP: Send SIGTERM to server
    520|4 1 8223 1 1|PREP: Server: create socket
    520|4 1 8223 1 2|PREP: Server: bind address 16.69.224.161, port 4153 to socket
    520|4 1 8223 1 3|PREP: Server: listen on socket
    520|4 1 8223 1 4|PREP: Server: notify client server is ready
    520|4 1 8223 1 5|PREP: Server: accept connection
    520|4 1 8223 1 6|INFO: Server: accepted connection from address 16.69.224.161, port 2076
    520|4 1 8223 1 7|PREP: close_server: wait for client to be ready
    520|4 1 8223 1 8|PREP: close_server: close connection
    520|4 1 8223 1 9|PREP: close_server: tell client connection is closed
    520|4 1 8223 1 10|INFO: Server terminated
    220|4 1 1 14:38:52|FAIL
    410|4 27 1 14:38:52|IC End

    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.

    We added test purposes write 26-27 and writev 72 to the
    request since they may exhibit the same behavior.

    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