|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2007 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 2007.
Report 2007 Actions
Problem Report Number 2007 Submitter's Classification Test Suite problem State Resolved Resolution Test Suite Deficiency (TSD) Problem Resolution ID TSD.X.0999 Raised 1998-04-30 08:00 Updated 2003-03-13 08:00 Published 1998-05-06 08:00 Product Standard Transport Service XTI V2 Certification Program The Open Brand certification program Test Suite VST version 5.2.3 Test Identification XTI.os/cots/accept 22 Problem Summary TSDT5.001 This failure was first seen in VST5.2.3A, (i.e. the patch 'A' that was released for VST 5.2.3.) and has been acknowledged by vst_support. The observed behaviour is permitted by XNS Issue 5. A quote ... Problem Text
This failure was first seen in VST5.2.3A, (i.e. the patch 'A' that was released
for VST 5.2.3.) and has been acknowledged by vst_support.
The observed behaviour is permitted by XNS Issue 5. A quote from the Errors
section of t_accept(), Page 55, XNS Issue 5 follows.
" [TBADSEQ] .... or a valid sequence number was specified, but the
connection request was aborted by the peer. In the latter
case, its T_DISCONNECT event will be received on the listening
endpoint . "
This is a change from the behaviour specified in XNS Issue 4. In XNS Issue 4,
t_accept() is specified to return -1 and set t_errno to [TLOOK], if there are
any incoming T_LISTEN or T_DISCONNECT events. This behaviour was relaxed in
XNS Issue 5, since there is no need for t_accept() to fail due to an unrelated
incoming T_LISTEN or T_DISCONNECT. However in this test case, the incoming
T_DISCONNECT is not an unrelated event. It is a direct cancellation of the
incoming connection request, that the test tries to t_accept(). The sequence
number in the 'sequence' field of the t_call parameter specified in the
t_accept() call is identical to the sequence number of the incoming
T_DISCONNECT, and is no longer recognized as valid, in the internal queue of
connections waiting acceptance. This results in the t_accept() call failing
and setting t_errno to [TBADSEQ].
It should also be noted that t_accept() can fail and set t_errno to [TBADSEQ]
even in XNS 4 implementations, under certain conditions described below.
Asynchrony in Streams framework, or parallelism introduced by Symmetric
MultiProcessing kernels, can induce a race condition where T_DISCON_IND has
been processed in the transport provider, but has not reached the Stream head
yet and hence is not yet visible to t_accept() library code.
XNS Issue 5 now acknowledges this [TBADSEQ] error, as can be seen in the Errors
Section of t_accept(), and is quoted above. The VST test suite does not stress
implementations in such a manner so as to exhibit the above race condition.
But applications that handle a high rate of connection establishments have been
observed to exhibit this behaviour in XNS 4 implementations.
The test expects t_accept() to either succeed and return 0, or fail and
return -1 and set t_errno to [TLOOK]. It should also allow the case where
t_errno is set to [TBADSEQ] as allowed by XNS Issue 5.Test Output
************************************************************************
/tset/XTI.os/cots/accept/T.accept 22 Failed
Test Description:
If the implementation supports a connection-oriented transport service
other than ISO class 2 and ISO class 3:
When a T_DISCONNECT event that requires immediate attention has
occurred on fd, then t_accept() returns (int)-1, sets t_errno to
TLOOK, and the states of the endpoints fd and resfd are not
changed.
Note: in UNIX98 test mode the t_accept() call may succeed instead of
producing a TLOOK error.
Test Strategy:
VERIFY that the transport service is of type T_COTS or T_COTS_ORD
MASTER:
OBTAIN an endpoint in T_INCON state using provsetup()
OPEN a second endpoint using t_open()
INITIALISE second endpoint using u_provinit()
SLAVE:
GENERATE T_DISCONNECT event on master using discon_ev_s()
MASTER:
WAIT for a T_DISCONNECT event on the endpoint using wait_event()
ACCEPT connection using t_accept() with resfd as second endpoint
VERIFY that t_accept() returned -1 and set t_errno to TLOOK
VERIFY that t_look() returns T_DISCONNECT
VERIFY that the states of the endpoints have not changed
Test Information:
t_accept() on TCP endpoint
TERRNO VALUES: expected: 9 (TLOOK), observed: 7 (TBADSEQ)
************************************************************************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 Test Suite Defiency and it is recommended that a
waiver is granted.
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 2007
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority