if a zvol of an existing, already imported zpool is a vdev of another zpool, a call to "zpool import" will everything zfs related. the stack trace is as follows:
I traced this back to 193fb6a2c94fab8eb8ce70a5da4d21c7d4023bee (merged in 4.4.0-6.21), which added a second parameter to lookup_bdev without patching the zfs module (which needs to special case the vdev-on-zvol case, and uses this exact method only in this special casing code path).
attached you can find the output of "zfs send -R" ing such a zvol ("brokenvol.raw"), running "zfs receive POOL/TARGET < FILE" followed by "zpool import" should reproduce the hang.
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: linux-image-4.4.0-45-generic 4.4.0-45.66
ProcVersionSignature: Ubuntu 4.4.0-45.66-generic 4.4.21
Uname: Linux 4.4.0-45-generic x86_64
NonfreeKernelModules: zfs zunicode zcommon znvpair zavl
AlsaDevices:
total 0
crw-rw---- 1 root audio 116, 1 Oct 25 15:46 seq
crw-rw---- 1 root audio 116, 33 Oct 25 15:46 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
Date: Tue Oct 25 15:49:51 2016
HibernationDevice: RESUME=/dev/mapper/xenial--vg-swap_1
InstallationDate: Installed on 2016-10-25 (0 days ago)
InstallationMedia: Ubuntu-Server 16.04.1 LTS "Xenial Xerus" - Release amd64 (20160719)
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig'
Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: QEMU Standard PC (i440FX + PIIX, 1996)
PciMultimedia:
ProcFB: 0 qxldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-4.4.0-45-generic root=/dev/mapper/hostname--vg-root ro
RelatedPackageVersions:
linux-restricted-modules-4.4.0-45-generic N/A
linux-backports-modules-4.4.0-45-generic N/A
linux-firmware 1.157.4
RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/01/2014
dmi.bios.vendor: SeaBIOS
dmi.bios.version: rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.version: pc-i440fx-2.7
dmi.modalias: dmi:bvnSeaBIOS:bvrrel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org:bd04/01/2014:svnQEMU:pnStandardPC(i440FX+PIIX,1996):pvrpc-i440fx-2.7:cvnQEMU:ct1:cvrpc-i440fx-2.7:
dmi.product.name: Standard PC (i440FX + PIIX, 1996)
dmi.product.version: pc-i440fx-2.7
dmi.sys.vendor: QEMU
if a zvol of an existing, already imported zpool is a vdev of another zpool, a call to "zpool import" will everything zfs related. the stack trace is as follows:
[<ffffffffc038d 374>] taskq_wait+ 0x74/0xe0 [spl] 42b>] taskq_destroy+ 0x4b/0x100 [spl] afd>] vdev_open_ children+ 0x12d/0x180 [zfs] 6cc>] vdev_root_ open+0x3c/ 0xc0 [zfs] 5f5>] vdev_open+ 0xf5/0x4d0 [zfs] 11e>] spa_load+ 0x39e/0x1c60 [zfs] 70d>] spa_tryimport+ 0xad/0x450 [zfs] 2d4>] zfs_ioc_ pool_tryimport+ 0x64/0xa0 [zfs] 70b>] zfsdev_ ioctl+0x44b/ 0x4e0 [zfs] 24f>] do_vfs_ ioctl+0x29f/ 0x490 4b9>] SyS_ioctl+0x79/0x90 8b2>] entry_SYSCALL_ 64_fastpath+ 0x16/0x71 fff>] 0xffffffffffffffff
[<ffffffffc038d
[<ffffffffc04a4
[<ffffffffc04ae
[<ffffffffc04a4
[<ffffffffc048f
[<ffffffffc0491
[<ffffffffc04c4
[<ffffffffc04c7
[<ffffffff81221
[<ffffffff81221
[<ffffffff81831
[<fffffffffffff
I traced this back to 193fb6a2c94fab8 eb8ce70a5da4d21 c7d4023bee (merged in 4.4.0-6.21), which added a second parameter to lookup_bdev without patching the zfs module (which needs to special case the vdev-on-zvol case, and uses this exact method only in this special casing code path).
attached you can find the output of "zfs send -R" ing such a zvol ("brokenvol.raw"), running "zfs receive POOL/TARGET < FILE" followed by "zpool import" should reproduce the hang.
ProblemType: Bug 4.4.0-45- generic 4.4.0-45.66 ature: Ubuntu 4.4.0-45.66-generic 4.4.21 dules: zfs zunicode zcommon znvpair zavl /dev/mapper/ xenial- -vg-swap_ 1
DistroRelease: Ubuntu 16.04
Package: linux-image-
ProcVersionSign
Uname: Linux 4.4.0-45-generic x86_64
NonfreeKernelMo
AlsaDevices:
total 0
crw-rw---- 1 root audio 116, 1 Oct 25 15:46 seq
crw-rw---- 1 root audio 116, 33 Oct 25 15:46 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
Date: Tue Oct 25 15:49:51 2016
HibernationDevice: RESUME=
InstallationDate: Installed on 2016-10-25 (0 days ago)
InstallationMedia: Ubuntu-Server 16.04.1 LTS "Xenial Xerus" - Release amd64 (20160719)
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig'
Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: QEMU Standard PC (i440FX + PIIX, 1996)
PciMultimedia:
ProcFB: 0 qxldrmfb /vmlinuz- 4.4.0-45- generic root=/dev/ mapper/ hostname- -vg-root ro ersions: restricted- modules- 4.4.0-45- generic N/A backports- modules- 4.4.0-45- generic N/A 3-0-ge2fc41e- prebuilt. qemu-project. org version: pc-i440fx-2.7 bvrrel- 1.9.3-0- ge2fc41e- prebuilt. qemu-project. org:bd04/ 01/2014: svnQEMU: pnStandardPC( i440FX+ PIIX,1996) :pvrpc- i440fx- 2.7:cvnQEMU: ct1:cvrpc- i440fx- 2.7: version: pc-i440fx-2.7
ProcKernelCmdLine: BOOT_IMAGE=
RelatedPackageV
linux-
linux-
linux-firmware 1.157.4
RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/01/2014
dmi.bios.vendor: SeaBIOS
dmi.bios.version: rel-1.9.
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.
dmi.modalias: dmi:bvnSeaBIOS:
dmi.product.name: Standard PC (i440FX + PIIX, 1996)
dmi.product.
dmi.sys.vendor: QEMU