[Bug 240917] panic: (scsi_da.c:2128, 12.1-BETA1) _mtx_lock_sleep: recursed on non-recursive mutex CAM device lock

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 29 Dec 2021 00:49:15 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240917

--- Comment #4 from Alan Somers <asomers@FreeBSD.org> ---
I can't reproduce it on BHyve using virtual block devices, simply because I
can't make any virtual block device whose size I can change and can reprobe:
* virtio-blk: not a CAM device, so I can't "camcontrol reprobe" it
* nvme: not a CAM device, so I can't "camcontrol reprobe" it
* virtio-scsi: not supported by vm-bhyve.
* ahci-hd: bhyve doesn't seem to notice when the zvol gets expanded

Instead, I reproduced it with iSCSI.  The iSCSI server is physical (but
probably could be a VM):

$ sudo zfs create -V 1g -o volmode=dev zroot/test/disk0
$ # write the following to /etc/ctl.conf
auth-group {
    disk {
        auth-type = none
        initiator-portal = [ 192.168.0.0/24 ]
    }
}

portal-group {
    pg0 {
        discovery-auth-group no-authentication
        listen 0.0.0.0
        listen [::]
    }
}

lun {
    "disk0" {
        blocksize = 4096
        device-id = "disk0"
        path = "/dev/zvol/zroot/test/disk0"
    }
}

target {
    "iqn.2018-10.mydomain.myhost:disk0" {
        auth-group = disk
        portal-group { name = pg0 }
        lun = [
            { number = 0, name = disk0 },
        ]
    }
}

$ sudo sysrc ctld_flags="-u"
$ sudo service ctld onestart

Then do the following on the client
$ sudo service iscsid onestart
$ sudo iscsictl -A -d myhost.mydomain
$ sudo iscsictl -L   # to see the device name

Back on the server, do the following:
$ sudo zfs set volsize=2g zroot/test/disk0
$ sudo service ctld onereload

Then do the following on the client
$ sudo camcontrol reprobe da0

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.