|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1538 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 1538.
Report 1538 Actions
Problem Report Number 1538 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0820 Raised 2000-08-11 08:00 Updated 2003-03-13 08:00 Published 2000-08-21 08:00 Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98) Certification Program The Open Brand certification program Test Suite VSU version 5.1.1 Test Identification CAPI.os/sockets/sendmsg 46 Problem Summary TSD4U.00281 The test writes large buffers to the socket until no more can be written, then expects a sendmsg() of 12 bytes to block, but the system may be able to queue the 12 bytes. Problem Text
This failure also exists in the same test in VSU 5.0.4.
The test is supposed to fill up the send socket and then test that send()
blocks. However, on our implementation when line 4758
s2 = setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &tp1, sizeof(tp1));
is executed, the send buffer may be partly read. Thus when line 4785
ret = sendmsg(s, &Shdr, 0);
is executed the sendmsg() succeeds because there is now space in
the buffer. sendmsg() returns the number of bytes sent as required by
the XPG5 XNS specification. The size of the server receive buffer can
be decreased. Since the server is not reading, its receive buffer can get
filled. Then the server won't send the ACK that caused the partial read.
Our implementation is set-up to maximize the size of the outgoing tcp segment,
the test is failing because the low-water mark on the send buffer is not being
exceeded. We believe the test should be change to the following:
int size = 1 ;
s2 = setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &tp1, sizeof(tp1));
This would allow each byte of the data to be send and read as expected.Test Output
************************************************************************
/tset/CAPI.os/sockets/sendmsg/T.sendmsg 46 Failed
Test Description:
Base Conditional Conformance
If the implementation supports a communications domain and a socket
type and allows the option to be set:
The SO_SNDTIMEO option shall define the amount of time to block
because flow control prevents data from being sent for a call to
ssize_t sendmsg(int socket, const struct msghdr *message, int flags).
Test Information:
TEST: AF_INET SOCK_STREAM
PREP: Create test sockaddr_in: address = 9.3.155.178, port = 4809
PREP: Wait for server to be ready
PREP: Create a socket
PREP: Connect socket to address 9.3.155.178, port 4809
PREP: Check if option is supported
PREP: Set O_NONBLOCK
PREP: Fill up the server
PREP: Clear O_NONBLOCK on socket
PREP: Call setsockopt to set timeout value
TEST: Call to send times out as set
ERROR: Call to send did not timeout as expected
Expected -1 Received: 12
CLEANUP: Have server flush data
PREP: Server: create socket
PREP: Server: bind address 9.3.155.178, port 4809 to socket
PREP: Server: listen on socket
PREP: Server: notify client server is ready
PREP: Server: accept connection
INFO: Server: accepted connection from address 9.3.155.178, port 32926
PREP: sleep_server: wait for parent to complete test
INFO: sleep_server: parent completed test
CLEANUP: sleep_server: flush data
INFO: Server terminated
************************************************************************Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
This is accepted as a fault in the test suite.
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:
- View Report 1538
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority