[stgt] tgtadm delete without lld specified?

Lee Duncan lduncan at suse.com
Thu Apr 17 01:40:09 CEST 2014


I am debugging a problem on SUSE 11 SP3, with tgt 0.9.10.

I am creating two iSCSI targets using targets.conf. Neither target
specifies a low-level driver, and there is no default-driver specified
either.

The targets looks something like this:

<target iqn....t1>
    backing-store /dev/some-device
    vendor_id someid
    product_id volume-num1
</target>

I create two of these targets, t1, and t2, then I using open-iscsi to
login to the first target, t1, then logout.

Then I run "tgt-admin --delete "iqn...t1". As you know, this just runs
"tgtadm --op delete --mode target --tid=<tid-of-t1>". No low-level
driver is specified.

Then I try to login to the second target, t2, using open-iscsi, and
the login hangs. This is because tgtd has died.

Further analysis shows that tgtd dies because when it tries to look up
the iscsi target structure for t2, the t1 entry is still around. And
when the code tries to get the name of this no-longer-existing target,
it gets NULL and tries to compare that with the iqn name being
added. This makes strcmp() very unhappy.

I find that if I manually specify the lld either on the command line
of "tgtadm", or in one of the config files, then this problem goes
away.

It looks like when I don't specify any LLD the upper-level code
defaults to low-lever-driver zero! This seems like a bug to me.

Shouldn't the "tgtadm" command enforce specifying the low-level
driver?
-- 
Lee Duncan
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



More information about the stgt mailing list