|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1364 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 1364.
Report 1364 Actions
Problem Report Number 1364 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0646 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1996-12-11 08:00 Product Standard Internationalised System Calls and Libraries Extended (UNIX 95) Certification Program The Open Brand certification program Test Suite VSU version 4.1.1 Test Identification Sockets/accept 13 Problem Summary TSD4U.00171 This test may fail due to a race condition. Problem Text
race condition in test purpose 13 of sockets/accept (see report output).
The test server tries to force an EMFILE error on a call to
accept() by consuming all available file descriptors before.
This test succeeds: after consuming all available file descriptors
accept() returns -1 with errno equal to EMFILE.
Meanwhile the client's connect() call fails with ECONNREFUSED,
because the server closed the connection and is waiting for the
client to exit. This results in a test failure.
[if the client gets scheduled before the server closes the
socket the test succeeds.]
PARENT CHILD
-----------------------------------------------------------
fork
WAIT_EVENT(PARENT_READY)
s = socket()
bind
listen
POST_EVENT(PARENT_READY) ----------------------------------
consume fds error = inet_client
accept socket
release fds connect
if(error == -1)
return(-1);
WAIT_EVENT(CHILD_CONTINUE)
POST_EVENT(CHILD_CONTINUE) --------------------------------
close(s)
WAIT_FOR_PID() --------------------------------------------Test Output
TEST PURPOSE #13
If the implementation supports a communications
domain and a connection-oriented socket type:
EMFILE in errno and return -1 on a call to int
accept(int socket, struct sockaddr *address, size_t
*address_len) when OPEN_MAX file descriptors are
currently open in the calling process.
PREP: Determine OPEN_MAX
TEST: AF_INET SOCK_STREAM
PREP: Create test sockaddr_in: address = 139.22.228.9, port = 3125
PREP: Child: wait for parent
PREP: Create a socket
PREP: Connect socket to address 139.22.228.9, port 3125
ERROR: inet_client: connect failed, errno = 146(ECONNREFUSED - Connection refu
sed)
PREP: Create socket
PREP: Bind to socket
PREP: Call listen for socket
PREP: Signal child parent is ready
PREP: Consume all available file descriptors
TEST: Call accept
TEST: Return value
TEST: errno value
CLEANUP: Close sockets, kill child
TEST: AF_UNIX SOCK_STREAM
PREP: Create test sockaddr_un: path = ../tmp/unix.a004Yq
PREP: Child: wait for parent
PREP: Create socket
PREP: Set O_NONBLOCK for socket
PREP: Connect to address ../tmp/unix.a004Yq
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: Consume all available file descriptors
TEST: Call accept
TEST: Return value
TEST: errno value
CLEANUP: Close sockets, kill child
13 UNRESOLVEDReview 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.
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 1364
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority