libiscsi
libiscsi copied to clipboard
iSCSIdatasn failed because of unexpected immediate data sent out.
In test_iscsi_datasn_invalid, the test will send out invalid datasn to verify if iSCSI target will return error.
In this case, when datasn == 27, from the packets we captured, it used immediate data. So in this case, no data out PDUs were sent out. And the write10 succeed in the end, which failed the test suite.
359 3.180138 10.160.171.109 10.192.141.117 iSCSI 590 SCSI: Data In LUN: 0x00 (Mgmt Protocol In Response Data) SCSI: Response LUN: 0x00 (Mgmt Protocol In) (Good) 471 4.191759 10.192.141.117 10.160.171.109 iSCSI 114 SCSI: Write(10) LUN: 0x00 (LBA: 0x00000064, Len: 2) <-- First write10 474 4.192715 10.192.141.117 10.160.171.109 iSCSI 578 SCSI: Data Out LUN: 0x00 (Write(10) Request Data) <-- datasn == 0 476 4.192747 10.192.141.117 10.160.171.109 iSCSI 578 SCSI: Data Out LUN: 0x00 (Write(10) Request Data) <-- datasn == 0 500 4.202743 10.192.141.117 10.160.171.109 iSCSI 578 SCSI: Write(10) LUN: 0x00 (LBA: 0x00000064, Len: 1)SCSI: Data Out LUN: 0x00 (Write(10) Request Data) <-- Second write10 (datasn should be 27) 503 4.215434 10.160.171.109 10.192.141.117 iSCSI 114 SCSI: Response LUN: 0x00 (Write(10)) (Good) <-- write10 succeed 504 4.215482 10.192.141.117 10.160.171.109 iSCSI 114 SCSI: Write(10) LUN: 0x00 (LBA: 0x00000064, Len: 1) <-- Third write10. 511 4.219007 10.192.141.117 10.160.171.109 iSCSI 578 SCSI: Data Out LUN: 0x00 (Write(10) Request Data) <-- datasn == -1
The hex dump of the second write10. So we can see the write10 used immediate data.
0000 00 00 0c 9f fb 62 02 00 31 5e 61 9a 08 00 45 00 0010 02 34 ce 66 40 00 40 06 1c 1b 0a c0 8d 75 0a a0 0020 ab 6d e1 f0 0c bc fc 2e 3c 8d e6 a1 5d 09 80 18 0030 00 3f 50 69 00 00 01 01 08 0a 2f 73 f7 ab 03 c3 0040 34 ff a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0050 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0060 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0070 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0080 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0090 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 00a0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 00b0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 00c0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 00d0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 00e0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 00f0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0100 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0110 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0120 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0130 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0140 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0150 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0160 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0170 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0180 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0190 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 01a0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 01b0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 01c0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 01d0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 01e0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 01f0 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0200 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0210 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0220 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0230 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 a6 0240 a6 a6
But it should not use immediate data as the code indicates. https://github.com/sahlberg/libiscsi/blob/master/test-tool/test_iscsi_datasn_invalid.c#L127
Could someone please help take a further investigation on this issue? Thanks!