Fri Jan 6 18:01:23 PST 1995

Bob Snively writes:

 John Scheible writes:

 If a Target receives an ACA I/O process while it does not have an Auto
 Contingent Allegiance condition for the same nexus, then it returns
 Check Condition status.  The sense data contains a sense key of 'Illegal
 Request' and an additional sense code of 'Invalid Message Error'.

 I ask:

 Once an ACA I/O process is responded to by a Check Condition,
 then there is in fact an ACA condition present and all other
 commands in the same string (that probably also have the ACA
 attribute set) will then be accepted.  Now we have a case where
 the invalid string of commands becomes validated and will be
 executed.  Ideas?


It seems to me that a properly designed initiator would *never* send
a command with the ACA attribute set unless it was already in an
error recovery process. During this error recovery, it might
not need to send ANY new commands (only abort them, perhaps), and if it did
send commands, it would be even less likely to queue them. Queueing
is usually needed to improve performance, and error paths are not
usually optimized for performance.
The case which Bob points out seems to me to be very improbable
because it is the result of 2 rare events: 1) an initiator which sets
the ACA tag when no ACA exists, and 2) an initiator which queues commands
during error recovery. I would hope that no initiators will allow these two
events to occur or if they do then they can handle the conseuences.
                           Giles Frazier, IBM Austin
                           gfrazier at

More information about the T10 mailing list