I nailed it down to one bit, this is the targets.conf file that triggers
the problem:
<target iqn.2008-09.com.example:server.tape>
<backing-store /root/smc>
lun 4
device-type changer
removable 1
vendor_id "STK"
product_id "L700"
product_rev "0001"
scsi_sn "123:456:789:000"
# Dummy 'page 0'
mode_page "0:0:0"
# Page 0x02: Disconnect/Reconnect SPC-3
mode_page "0x02:0:14:0x80:0x80:0:0xa:0:0:0:0:0:0:0:0:0:0"
# Page 0x1a: Power Condition SPC-3
mode_page "0x1a:0:18:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"
# Page 0x1c: Informational Exceptions Control SPC-3
mode_page "0x1c:0:10:8:0:0:0:0:0:0:0:0:0"
# Page 0x1d: Element Address Assignment SMC-3 7.3.4
mode_page "0x1d:0:0x12:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0"
# Page 0x1e: Transport Geometry Parameters SMC-3 7.3.5
mode_page "0x1e:0:2:0:0"
# Page 0x1f: Device Capabilities SMC-3 7.3.2
# Page 0x1f/Subpage 0x41: Extended Device Capabilities SMC-3 7.3.3
mode_page
"0x1f:0:0x12:0x0f:7:0x0f:0x0f:0x0f:0x0f:0:0:0:0:0x0f:0x0f:0x0f:0x0f:0:0:0:0"
# Type 2: Storage Elements (tape slots)
params
element_type=2,start_address=1000,quantity=24,media_home=/root/btapes
</backing-store>
</target>
As you can see only element_type 2 triggers the problem. The only
difference with my script is
that I also define (or fill) several tapes. However, a completely empty
changer is a valid configuration,
and this is the last of the tgtd -f -d8 output on this:
tgtd: spc_inquiry(164) 0 0
tgtd: target_cmd_queue(857) e 12 (nil) 0x89cb000 0 0 56 0 0
tgtd: iscsi_scsi_cmd_done(1185) shrunk too big device read len 66 > 56
tgtd: iscsi_task_tx_start(1858) found a task e 56 0 0
tgtd: iscsi_data_rsp_build(1050) 56 56 56 8192e
tgtd: __cmd_done(918) 0 (nil) 0x89cb000 0 56 0
tgtd: iscsi_task_tx_start(1883) no more data
tgtd: iscsi_scsi_cmd_rx_start(1567) 1 1a 0 0 136 1 f
tgtd: iscsi_task_queue(1512) c c 1
tgtd: target_cmd_queue(827) 0x89ca280 1a 4
tgtd: target_cmd_queue(846) 0x89ca280 1a 4 1
tgtd: target_cmd_queue(857) f 1a (nil) 0x89cb000 0 0 136 0 0
tgtd: iscsi_task_tx_start(1858) found a task f 136 0 0
tgtd: iscsi_data_rsp_build(1050) 24 136 24 8192f
tgtd: __cmd_done(918) 0 (nil) 0x89cb000 0 136 0
tgtd: iscsi_task_tx_start(1883) no more data
tgtd: iscsi_scsi_cmd_rx_start(1567) 1 b8 0 0 40 1 10
tgtd: iscsi_task_queue(1512) d d 1
tgtd: target_cmd_queue(827) 0x89ca280 b8 4
tgtd: target_cmd_queue(846) 0x89ca280 b8 4 1
*** glibc detected *** tgtd: free(): invalid next size (fast):
0x089c3488 ***
*** glibc detected *** tgtd: malloc(): memory corruption: 0x089c34b8 ***
Looks like a problem with the allocation of the slots.
I hope this will give you guys enough clues.
Reason I am trying to get such a targets.conf file working is that we
can add several example
targets.conf to the tgt distribution (and not only vtl configs) so
people can set it up more easily.
Albert
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html