Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hang on creating zvol #440

Open
copyliu opened this issue Feb 8, 2025 · 2 comments
Open

hang on creating zvol #440

copyliu opened this issue Feb 8, 2025 · 2 comments

Comments

@copyliu
Copy link

copyliu commented Feb 8, 2025

System information

Type Version/Name
Distribution Name Win11 24H2 26100.2894
Distribution Version
Kernel Version
Architecture x86_64
OpenZFS Version zfswin-2.3.0rc4

Describe the problem you're observing

creating a zvol with wrong size cause zfs.exe hang

Describe how to reproduce the problem

  1. fsutil file createNew c:\test.img 102476800 (100M)
  2. zpool create pool1 \?\c:\test.img
  3. zfs create -V 1G pool1/test
    zfs.exe hang, CPU full, never return, a 1G zvol created and appeared in system

expected behavior is return error with cannot create 'pool1/test': out of space

Include any warning/errors/backtraces from the system logs

@lundman
Copy link

lundman commented Feb 10, 2025

Ok it took 7 hours for it to dump the stack, which looks like

0: kd> k
  *** Stack trace for last set context - .thread/.cxr resets it
 # Child-SP          RetAddr               Call Site
00 ffff9983`6d2ec728 fffff801`3647f1f6     OpenZFS!strlcpy+0x7d [C:\src\openzfs\module\os\windows\spl\spl-ddi.c @ 592] 
01 ffff9983`6d2ec750 fffff801`3647f13e     OpenZFS!__zfs_dbgmsg+0x76 [C:\src\openzfs\module\os\windows\zfs\zfs_debug.c @ 197] 
02 ffff9983`6d2ec790 fffff801`36308e07     OpenZFS!__dprintf+0x29e [C:\src\openzfs\module\os\windows\zfs\zfs_debug.c @ 274] 
03 ffff9983`6d2ec840 fffff801`363063e7     OpenZFS!dbuf_create+0x9b7 [C:\src\openzfs\module\zfs\dbuf.c @ 3484] 
04 ffff9983`6d2ec970 fffff801`362fca20     OpenZFS!dbuf_hold_impl+0xed7 [C:\src\openzfs\module\zfs\dbuf.c @ 3929] 
05 ffff9983`6d2ecb40 fffff801`36309209     OpenZFS!dbuf_hold_level+0x60 [C:\src\openzfs\module\zfs\dbuf.c @ 4010] 
06 ffff9983`6d2ecbd0 fffff801`362e3743     OpenZFS!dbuf_hold+0x29 [C:\src\openzfs\module\zfs\dbuf.c @ 4003] 
07 ffff9983`6d2ecc10 fffff801`362e397c     OpenZFS!dmu_buf_hold_noread_by_dnode+0x53 [C:\src\openzfs\module\zfs\dmu.c @ 183] 
08 ffff9983`6d2ecc70 fffff801`36333e94     OpenZFS!dmu_buf_hold_by_dnode+0x7c [C:\src\openzfs\module\zfs\dmu.c @ 234] 
09 ffff9983`6d2eccd0 fffff801`36335c0f     OpenZFS!zap_lockdir+0xa4 [C:\src\openzfs\module\zfs\zap_micro.c @ 752] 
0a ffff9983`6d2ecd60 fffff801`36335b63     OpenZFS!zap_lookup_norm+0x9f [C:\src\openzfs\module\zfs\zap_micro.c @ 1168] 
0b ffff9983`6d2ece00 fffff801`361b4b58     OpenZFS!zap_lookup+0x83 [C:\src\openzfs\module\zfs\zap_micro.c @ 1113] 
0c ffff9983`6d2ece80 fffff801`3616e368     OpenZFS!dsl_dir_hold+0x2d8 [C:\src\openzfs\module\zfs\dsl_dir.c @ 510] 
0d ffff9983`6d2ecf50 fffff801`361814ce     OpenZFS!dsl_dataset_hold_flags+0x68 [C:\src\openzfs\module\zfs\dsl_dataset.c @ 821] 
0e ffff9983`6d2ecff0 fffff801`36181589     OpenZFS!dmu_objset_hold_flags+0x8e [C:\src\openzfs\module\zfs\dmu_objset.c @ 757] 
0f ffff9983`6d2ed070 fffff801`36147404     OpenZFS!dmu_objset_hold+0x29 [C:\src\openzfs\module\zfs\dmu_objset.c @ 775] 
10 ffff9983`6d2ed0b0 fffff801`361f6398     OpenZFS!zfs_destroy_unmount_origin+0x34 [C:\src\openzfs\module\zfs\zfs_ioctl.c @ 3869] 
11 ffff9983`6d2ed200 fffff801`3614cf72     OpenZFS!dsl_destroy_head+0x28 [C:\src\openzfs\module\zfs\dsl_destroy.c @ 1223] 
12 ffff9983`6d2ed290 fffff801`361487be     OpenZFS!zfs_ioc_create+0x562 [C:\src\openzfs\module\zfs\zfs_ioctl.c @ 3592] 
13 ffff9983`6d2ed360 fffff801`36457c3a     OpenZFS!zfsdev_ioctl_common+0x61e [C:\src\openzfs\module\zfs\zfs_ioctl.c @ 8068] 
14 ffff9983`6d2ed440 fffff801`3646fb87     OpenZFS!zfsdev_ioctl+0x2aa [C:\src\openzfs\module\os\windows\zfs\zfs_ioctl_os.c @ 878] 
15 ffff9983`6d2ed520 fffff801`3646eedb     OpenZFS!ioctlDispatcher+0x2b7 [C:\src\openzfs\module\os\windows\zfs\zfs_vnops_windows.c @ 6986] 
16 ffff9983`6d2ed5f0 fffff801`2be650d5     OpenZFS!dispatcher+0x21b [C:\src\openzfs\module\os\windows\zfs\zfs_vnops_windows.c @ 8052] 
17 ffff9983`6d2ed720 fffff801`2c2c8cc0     nt!IofCallDriver+0x55
18 ffff9983`6d2ed760 fffff801`2c2c7550     nt!IopSynchronousServiceTail+0x1d0
19 ffff9983`6d2ed810 fffff801`2c2c6e36     nt!IopXxxControlFile+0x700
1a ffff9983`6d2eda00 fffff801`2c02a505     nt!NtDeviceIoControlFile+0x56
1b ffff9983`6d2eda70 00007ff8`abc70484     nt!KiSystemServiceCopyEnd+0x25
1c 00000063`8d0fd898 00000000`00000000     0x00007ff8`abc70484

which seems to be stuck here:

			error2 = dsl_destroy_head(fsname);
			while ((error2 == EBUSY) && (type == DMU_OST_ZVOL)) {
				error2 = spa_open(fsname, &spa, FTAG);
				if (error2 == 0) {
					taskq_wait(spa->spa_zvol_taskq);
					spa_close(spa, FTAG);
				}
				error2 = dsl_destroy_head(fsname);
			}

@lundman
Copy link

lundman commented Feb 11, 2025

16fe43b

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants