Extended Copy command error reporting

Paul Hughes phughes at solidfire.com
Wed Oct 16 10:55:03 PDT 2013


Formatted message: <a href="http://www.t10.org/cgi-bin/ac.pl?t=r&f=r1310161_f.htm">HTML-formatted message</a>

I'm uncertain how some types of Extended Copy errors should be reported,
for example whether the copy manager should set the sense key to COPY
ABORTED or not.
In SPC-4 rev 36i, section 5.16.7.3 states:
Errors may occur during processing of an EXTENDED COPY command before GOOD
status is returned because the IMMED bit is set to one or the first segment
descriptor is processed. These errors include CRC or parity errors while
transferring the EXTENDED COPY command, invalid parameters in the CDB or
parameter data, invalid segment descriptors, and inability of the copy
manager to continue operating. In the event of such an exception condition,
the copy manager shall:
a) terminate the EXTENDED COPY command with CHECK CONDITION status;
b) set the sense key to a value that describes the exception condition
(i.e., not COPY ABORTED); and
c) not return a value in the INFORMATION field (see 4.5.4).
and section 5.16.7.4 states:
Errors may occur after the copy manager has begun processing segment
descriptors or GOOD status has been returned because the IMMED bit was set
to one. These errors include invalid parameters in segment descriptors,
invalid segment descriptors, unavailable CSCDs referenced by CSCD
descriptors, inability of the copy manager to continue operating, and
errors reported by a CSCD. If the copy manager receives CHECK CONDITION
status from a CSCD, then it shall recover the sense data associated with
the exception condition and clear any ACA condition associated with the
CHECK CONDITION status.
In both sections, "invalid segment descriptors" is mentioned -- does this
imply that a copy manager can either validate all segment descriptors
before processing the first segment descriptor or validate segment
descriptors as they are processed.  I'm also confused what "processing
segment descriptors" means, since it apparently determines whether the
sense key is set to COPY ABORTED or not.  Does processing a segment
descriptor mean that the copy manager has begun to issue commands to one or
more CSCDs?
For example, how should a copy manager report the following errors?
1) A segment descriptor references a destination CSCD that is write
protected.
2) A segment descriptor attempts to copy a range of blocks that exceeds the
maximum LBA of either the source or destination CSCD.
If the copy manager is able to validate all segment descriptors before
starting any copy operations, then it seems Section 5.16.7.3 applies, and
the copy manager shall not set the sense key to COPY ABORTED.  However
reporting ILLEGAL REQUEST, LOGICAL BLOCK ADDRESS OUT OF RANGE doesn't
specify which CSCD's maximum LBA was exceeded.
Thanks!
-- 
*Paul Hughes
Senior Software Engineer, SolidFire, Inc.*
e: phughes at solidfire.com
*Advancing the way the world uses the
cloud<http://solidfire.com/solution/overview/?video=play&gt;
**™*



More information about the T10 mailing list