|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 1086 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 1086.
Report 1086 Actions
Problem Report Number 1086 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0542 Raised 1999-12-15 08:00 Updated 2003-03-13 08:00 Published 2000-01-04 08:00 Product Standard Internationalised System Calls and Libraries Extended V2 (UNIX 98) Certification Program The Open Brand certification program Test Suite VSRT version 5.0.3 Test Identification rt.os/aio/lio_listio 44 Problem Summary TSD4R.00014 Intermittent failure due to a timing issue with non-blocking read() calls. Problem Text
The failure is intermittent: the test sometimes passes and sometimes
presents different but similar results.
This test case causes flow blockage by writing messages into the pty
stream until a write fails. At this point there are several messages
in the stream, one at each of the modules and at the read side stream
head.
We get data flowing again by doing a 'while(read(readfd))'. This will
backenable the successive queues one at a time. However, the next read
loop can come back around and find there is nothing to read yet (the
message has not yet percolated up to the stream head) and will fail,
allowing us to drop into waiting for writes to complete.
Unfortunately, we have allowed fewer messages to be written than read
before we flow control again. This stops other writes from
proceeding.
We connor assume that a while(read()) will consume all the data since the
write()s are asynchronous and, on a STREAM, the read()s are too.
Making sure the write()s are unblocked:
9599d9598
<
9619,9627d9617
< /*
< * We came here because a write was outstanding
< .
< * Best to do a read in case the writes were
< * flow blocked and the above reads didn't
< * catch it.
< */
< while (read(readfd, bbuf, sizeof(bbuf)) > 0)
< ;
solves the problem.Test Output
************************************************************************
/tset/rt.os/aio/lio_listio/T.lio_listio 44 Failed
Test Description:
If _POSIX_ASYNCHRONOUS_IO is defined or the implementation supports
the lio_listio() function as described in System Interfaces and
Headers, Issue 5:
On a call to lio_listio() when a requested operation is canceled by
a call to aio_cancel() the return status of the asynchronous
operation shall be set to -1 and its error status shall be set to
ECANCELED.
Test Information:
INFO: No limit on AIO_MAX
> test with pipe
> test with pty
> test with tty
tty testing not configured
> test with pipe
> test with pty
request 0 is still in progress
request 1 is still in progress
request 5 is still in progress
request 6 is still in progress
request 7 is still in progress
request 8 is still in progress
request 9 is still in progress
request 10 is still in progress
request 11 is still in progress
request 12 is still in progress
request 13 is still in progress
request 14 is still in progress
request 15 is still in progress
request 16 is still in progress
request 17 is still in progress
request 18 is still in progress
request 19 is still in progress
request 20 is still in progress
request 21 is still in progress
request 22 is still in progress
request 24 is still in progress
> test with tty
tty testing not configured
************************************************************************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 1086
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority