# cd into NFS subdir
truncate -s $((128*1024*1024*1024)) poolfile1.bin
chmod a+rw poolfile1.bin
# Create pool:
# - ashift=15 defines 32k blocks
# - autotrim=on makes sure that we use "poolfile1.bin" as sparse file
# - casesensitivity=insensitive defines a case-insensitive filesystem
# - driveletter=U sets the fs mount point to U:
# - optionally you can add -O utf8only=on
zpool.exe create -o ashift=15 -o autotrim=on -O xattr=dir -O casesensitivity=insensitive -O driveletter=U nfspool1 "\\\\?\\$(cygpath -w "$PWD/poolfile1.bin")"
$ zpool export nfspool1
zunmount(nfspool1,U:/) running
zunmount(nfspool1,U:/) returns 0
(1a34.1ea0): Wake debugger - code 80000007 (first chance)
ntdll!NtDeviceIoControlFile+0x14:
00007ff9`c07cd684 c3 ret
0:000> kp
# Child-SP RetAddr Call Site
00 000000ca`f675d198 00007ff9`be11dddb ntdll!NtDeviceIoControlFile+0x14
01 000000ca`f675d1a0 00007ff9`c0635951 KERNELBASE!DeviceIoControl+0x6b
02 000000ca`f675d210 00007ff7`ed585b54 KERNEL32!DeviceIoControl+0x81
03 000000ca`f675d260 00007ff7`ed585a31 zpool!zcmd_ioctl_compat(int fd = 0n552, int request = 0n3, struct zfs_cmd * zc = 0x000000ca`f675d490, int cflag = 0n0)+0xe4 [C:\src\openzfs\lib\libzfs_core\os\windows\libzfs_core_ioctl.c @ 77]
04 000000ca`f675d2f0 00007ff7`ed5809f1 zpool!lzc_ioctl_fd_os(int fd = 0n552, unsigned long request = 3, struct zfs_cmd * zc = 0x000000ca`f675d490)+0x41 [C:\src\openzfs\lib\libzfs_core\os\windows\libzfs_core_ioctl.c @ 133]
05 000000ca`f675d340 00007ff7`ed5561d8 zpool!lzc_ioctl_fd(int fd = 0n552, unsigned long ioc = 3, struct zfs_cmd * zc = 0x000000ca`f675d490)+0x41 [C:\src\openzfs\lib\libzfs_core\libzfs_core.c @ 197]
06 000000ca`f675d400 00007ff7`ed546ddb zpool!zfs_ioctl(struct libzfs_handle * hdl = 0x0000028f`6964ecb0, int request = 0n3, struct zfs_cmd * zc = 0x000000ca`f675d490)+0x28 [C:\src\openzfs\lib\libzfs\libzfs_util.c @ 795]
07 000000ca`f675d440 00007ff7`ed546d38 zpool!zpool_export_common(struct zpool_handle * zhp = 0x0000028f`6964f860, <unnamed-tag> force = B_FALSE (0n0), <unnamed-tag> hardforce = B_FALSE (0n0), char * log_str = 0x00007ff7`ee610520 "C:\Program Files\OpenZFS On Windows\zpool.exe export nfspool1")+0x9b [C:\src\openzfs\lib\libzfs\libzfs_pool.c @ 1886]
08 000000ca`f675e650 00007ff7`ed515f77 zpool!zpool_export(struct zpool_handle * zhp = 0x0000028f`6964f860, <unnamed-tag> force = B_FALSE (0n0), char * log_str = 0x00007ff7`ee610520 "C:\Program Files\OpenZFS On Windows\zpool.exe export nfspool1")+0x28 [C:\src\openzfs\lib\libzfs\libzfs_pool.c @ 1910]
09 000000ca`f675e690 00007ff7`ed4f4745 zpool!zpool_export_one(struct zpool_handle * zhp = 0x0000028f`6964f860, void * data = 0x000000ca`f675e840)+0xb7 [C:\src\openzfs\cmd\zpool\zpool_main.c @ 2433]
0a 000000ca`f675e6e0 00007ff7`ed4f48d1 zpool!pool_list_iter(struct zpool_list * zlp = 0x0000028f`69630930, int unavail = 0n1, <function> * func = 0x00007ff7`ed515ec0, void * data = 0x000000ca`f675e840)+0x85 [C:\src\openzfs\cmd\zpool\zpool_iter.c @ 240]
0b 000000ca`f675e740 00007ff7`ed4ffb49 zpool!for_each_pool(int argc = 0n1, char ** argv = 0x0000028f`69637840, <unnamed-tag> unavail = B_TRUE (0n1), struct zprop_list ** proplist = 0x00000000`00000000, <unnamed-tag> type = ZFS_TYPE_POOL (0n8), <unnamed-tag> literal = B_FALSE (0n0), <function> * func = 0x00007ff7`ed515ec0, void * data = 0x000000ca`f675e840)+0xb1 [C:\src\openzfs\cmd\zpool\zpool_iter.c @ 289]
0c 000000ca`f675e7c0 00007ff7`ed4f68b3 zpool!zpool_do_export(int argc = 0n1, char ** argv = 0x0000028f`69637840)+0x2a9 [C:\src\openzfs\cmd\zpool\zpool_main.c @ 2559]
0d 000000ca`f675e890 00007ff7`ee25bcf9 zpool!main(int argc = 0n3, char ** argv = 0x0000028f`6962bc10)+0x2a3 [C:\src\openzfs\cmd\zpool\zpool_main.c @ 13901]
0e 000000ca`f675fac0 00007ff7`ee25bba2 zpool!invoke_main(void)+0x39 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 79]
0f 000000ca`f675fb10 00007ff7`ee25ba5e zpool!__scrt_common_main_seh(void)+0x132 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288]
10 000000ca`f675fb80 00007ff7`ee25bd8e zpool!__scrt_common_main(void)+0xe [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 331]
11 000000ca`f675fbb0 00007ff9`c0637374 zpool!mainCRTStartup(void * __formal = 0x000000ca`f6891000)+0xe [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp @ 17]
12 000000ca`f675fbe0 00007ff9`c077cc91 KERNEL32!BaseThreadInitThunk+0x14
13 000000ca`f675fc10 00000000`00000000 ntdll!RtlUserThreadStart+0x21
I don't know how to get a stack trace from the kernel side... ;-(
Steps to reproduce:
Install WinZFS from https://github.com/openzfsonwindows/openzfs/releases/download/zfswin-2.4.1rc14/OpenZFSOnWindows-debug-2.4.1rc14e.exe
Create zfspool
---- snip ----
---- snip ----
---- snip ----
zpool export nfspool1---- snip ----Result:
zpool export hangs after the following output:
---- snip ----
---- snip ----
Stacktrace looks like this:
---- snip ----
---- snip ----
I don't know how to get a stack trace from the kernel side... ;-(