How to decode STIO: found hung cmd
Applies to
- ONTAP 9 and Later
- ONTAP 8.3.x
- ONTAP 8.2 7-Mode
Answer
STIO
(SCSITarget I/O) messages are SCSI protocol level errors that are used to help, interpret, and diagnose the root cause for SCSI related issues.- When a FC target adapter encounters a SCSI command error during its processing, its logged in the EMS/messages.
STIO
messages have different meanings and can be decoded based upon the 'STATE' of the check condition during which the command is hung.
Example from EMS logs
STATE 5 : Mon Apr 18 00:37:03 EDT [controller1: fct_tpd_thread_6: fcp.io.status:debug]: STIO Adapter:0a, found hung cmd:0xffffff0200ef83a0(state=5, flags=0x0, ctio_sent=1/1,RecvExAddr=0x127524, OX_ID=0x43xx, RX_ID=0xffff,SID=0x10axx, Cmd[2A])
STATE 8: Tue Aug 16 11:33:01 MST [controller2: fct_tpd_thread_2: fcp.io.status:debug]: STIO Adapter:0f, found hung cmd:0xffffff02023592b0(state=8, flags=0x1, ctio_sent=0/1,RecvExAddr=0x1222b0, OX_ID=0x5dxx, RX_ID=0xffff,SID=0x400xx, Cmd[88])
As mentioned above, each state has a different meaning and can be decoded with the below table.
State: | Reason |
1 | FREE |
2 | PREPROCESS |
3 | SCSITCB_WAIT |
4 | DATAIN_SENT |
5 | DATAOUT_WAIT |
6 | DATAOUT_RCVD,STIO |
7 | RESP_SENT |
8 | DATAINRESP_SENT |
9 | DATAINRESP_CMPL |
10 | TERMINATE_WAIT |
11 | SCSITMF_WAIT |
12 | LAST |
13 | t |
The table above can be used to diagnose where through FC target command processes the issue occurred.
For example, adding a little context to each state:
state=5: DATAOUT_WAIT
This indicates that the FC target is waiting for something to come back from the host after accepting the write request; however, nothing came back within the expected timeout value.
state=8: DATAINRESP_SENT
This indicates that the FC target is waiting for something to come back from the host after accepting the read request; however, no payload was received within the expected timeout value.
Additional Information
additionalInformation_text