|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2403 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 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:
- View Report 2403
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority