|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2474 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 2474.
Report 2474 Actions
Problem Report Number 2474 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.1286 Raised 2005-09-09 23:30 Updated 2005-09-13 19:16 Published 2005-09-13 19:16 Product Standard Sockets (UNIX 95) Certification Program The Open Brand certification program Test Suite VSU version 5.2.7LT Test Identification CAPI.os/sockets/connect 8 Specification Networking Services Issue 4 Location in Spec See Problem Text Linked Problem Reports 1648 Problem Summary test8 fail because the listening(child) side had unsufficient queue
depth (backlog=1,qlen=2) and forcing a 3rd NONBLOCKING connection to
never be accepted , thus never showing up in a select() fdset writefds
on the client side.Problem Text test8 fail because the listening(child) side had unsufficient queue
depth (backlog=1,qlen=2) and forcing a 3rd NONBLOCKING connection to
never be accepted , thus never showing up in a select() fdset writefds
on the client side.
The listen(socket,1) setup a backlog of and, as documented in PIN.X.0192
and PIN.X.0205, a (3*backlog)/2+1 queue depth, hence 2 in this case.
Considering queue depth=2 and considering the test is such that it
force a sequence ( in time ) like this:
parentClient connect(s3)=EINPROGRESS
parentClient connect(s4)=EINPROGRESS
parentClient connect(s)=EINPROGRESS
childListener 1st accept() works:
childlistener 2nd accept() works:
childListener 3nd accept() works: TIMEOUT since queue was 2
parentClient check for 3rd connect fd _only_ ie 's'
Trouble is 's' was never accept()ed on the server because queue was 2.
Setting listen(sc,2) ( hence a queuedepth=4 ) : the test pass.
Checking for s3 and s4 presence ( in write fds ) sounds useful too.
Testing for 's' presence in write fds cannot work if queue depth <= 2.
So, we request Open Group to make this parameter (listen backlog ) a
configurable variable ( ? VSX_LISTEN_BACKLOG=1 by default maybe ) so
that we can assign a value that meets the purpose the above tests were
designed to perform, with either an Interpretation or TSD to cover this
situation.Test Output 200|0 8 14:11:09|TP Start
520|0 8 00006668 1 1|PREP: Get VSU_CONNECT_TIMEOUT configuration variable
520|0 8 00006668 1 2|TEST: AF_INET SOCK_STREAM
520|0 8 00006668 1 3|PREP: Create test sockaddr_in: address =
163.154.12.35, port = 3237
520|0 8 00006666 1 1|PREP: Child: create socket
520|0 8 00006666 1 2|PREP: Child: bind to socket
520|0 8 00006666 1 3|PREP: Child: listen on socket with backlog of 1
520|0 8 00006666 1 4|PREP: Child: tell parent ready
520|0 8 00006666 1 5|PREP: Child: wait for parent to become ready
520|0 8 00006666 1 6|PREP: Child: accept connections
520|0 8 00006666 1 7|PREP: Child: notify parent connections completed
520|0 8 00006666 1 8|PREP: Child: wait for parent to complete test
520|0 8 00006668 2 1|PREP: Create three sockets
520|0 8 00006668 2 2|PREP: Wait for child to be ready
520|0 8 00006668 2 3|PREP: Connect once or twice to fill queue
520|0 8 00006668 2 4|PREP: Set O_NONBLOCK
520|0 8 00006668 2 5|TEST: connect returns with EINPROGRESS
520|0 8 00006668 2 6|PREP: Notify child to accept
520|0 8 00006668 2 7|TEST: Await notification connections completed
520|0 8 00006668 2 8|TEST: Select reports socket ready to write
520|0 8 00006668 2 9|ERROR: Bit for socket not set in writefds
220|0 8 1 14:11:14|FAIL
410|0 8 1 14:11:14|IC EndReview Information
Review Type TSMA Review Start Date 2005-09-09 23:30 Last Updated 2005-09-12 22:47 Completed 2005-09-12 22:47 Status Complete Review Recommendation Test Suite Deficiency (TSD) Review Response This is accepted as a fault in the test suite.
Note that the submitter's suggested fix of increasing the listen() queue
length would negate the purpose of the test. The intention is that the
third connection attempt succeeds asynchronously after a delay.
Increasing the queue length would allow it to succeed straight away.
The problem is that the test does not allow a long enough timeout on the
third accept() call. The time allowed needs to be at least
VSU_CONNECT_TIMEOUT.
Review Type SA Review Start Date 2005-09-12 21:47 Last Updated 2005-09-13 00:15 Completed 2005-09-13 00:15 Status Complete Review Resolution Test Suite Deficiency (TSD) Review Conclusion This PR is accepted as a Test Suite Deficciency. Howeverthe fix
suggested by the submitter is not accepted as the TSMA believes this
would invalidate the test purpose.
Problem Reporting System Options:
- View Report 2474
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority