possible deadlock in nbd_ioctl

Status: auto-obsoleted due to no activity on 2025/09/09 00:24
Subsystems: nbd
[Documentation on labels]
Reported-by: syzbot+7f46fdd7673b5fec63ac@syzkaller.appspotmail.com
First crash: 481d, last: 481d
▶ ▼ Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [nbd?] possible deadlock in nbd_ioctl 0 (1) 2025/06/05 00:30

Sample crash report:
	îÕz�jýz/w$²â(>¼ÒT”|Ôh‹ÊýÍ3ÓÀ7ð`(*ûì¦úéxÃk"ÞºùGzR…òú±AoOäź™:m@dcÜ~້Éî–]°F#§„ø<ÉÐÈHÓKœS¿_	}å ¥&4�Ò½¥:–Bƒ@Y»a‹èH{€I�êȃ¢1À/Žt‡683Ù-ªHèÓ‡ÕŸOŽ6dÓÖg;ü„zÕá¿æG·Xê4WÐ6BÛg‘í³\¨"\‹V[1¯C³ç¡ cÀ½[H+í´ó™QçˆK°¾lÍ,NJçèTt0ôêáO3 «~ÿ7ÄT7æ˜iò†[  234.907471][T11482] 
‚ìÃBJ*à©—Mï<O[  234.908368][T11482] ======================================================
Ëbù4Ï2Ù¬…x/àÉ[  234.911186][T11482] WARNING: possible circular locking dependency detected
Ï­Ö:+¨€Þ‰ãß3l"0Ë[  234.913886][T11482] 6.15.0-syzkaller-10402-g4cb6c8af8591 #0 Not tainted
Z�¿d®O#ýÃ̵G<'„[  234.917367][T11482] ------------------------------------------------------
-ÊP„%¶p»žÀmxB?=[  234.921230][T11482] syz.2.1726/11482 is trying to acquire lock:
ÌžêKÏå;¢¤Âm$[  234.947847][T11482]        nbd_config_put+0x31/0x750 drivers/block/nbd.c:1423
8¡™µ¹·ªI@¿;¥�ÍŠ[  234.950419][T11482]        nbd_release+0xb7/0x190 drivers/block/nbd.c:1735
rmDD"…÷©ÿÄeÑ€>w[  234.952630][T11482]        blkdev_put_whole+0xad/0xf0 block/bdev.c:721
ÿåj&/oc¹ÿáiˆ!i[  234.954759][T11482]        bdev_release+0x47e/0x6d0 block/bdev.c:1144
òP_yQ2¨3@†�Sèº[  234.956801][T11482]        blkdev_release+0x15/0x20 block/fops.c:684
v³—yAe]Q3œL.Õùp[  234.958866][T11482]        __fput+0x402/0xb70 fs/file_table.c:465
9^€:êèl‚‘Ÿ~ð[  234.960790][T11482]        fput_close_sync+0x118/0x260 fs/file_table.c:570
XöƒŒ±zÔÂ~MÿÏ&[  234.963382][T11482]        __do_sys_close fs/open.c:1589 [inline]
XöƒŒ±zÔÂ~MÿÏ&[  234.963382][T11482]        __se_sys_close fs/open.c:1574 [inline]
XöƒŒ±zÔÂ~MÿÏ&[  234.963382][T11482]        __x64_sys_close+0x8b/0x120 fs/open.c:1574

H~‚hó !Ôc·N'á²[  234.965568][T11482]        do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
H~‚hó !Ôc·N'á²[  234.965568][T11482]        do_syscall_64+0xcd/0x490 arch/x86/entry/syscall_64.c:94
оZ8í £a–êµõÏ€L[  234.967679][T11482]        entry_SYSCALL_64_after_hwframe+0x77/0x7f
Rß%Å(Þ…Ðÿ]åÃZ[  234.970149][T11482] 
G”ÖÓ…�Ô–°ºjç[  234.973111][T11482]        __mutex_lock_common kernel/locking/mutex.c:601 [inline]
G”ÖÓ…�Ô–°ºjç[  234.973111][T11482]        __mutex_lock+0x199/0xb90 kernel/locking/mutex.c:746
ÁŸ®3¿ùDõ“C9à[  234.975247][T11482]        __del_gendisk+0xf5/0xbd0 block/genhd.c:706
°ü§R8„M¹2æxZý²[  234.977457][T11482]        del_gendisk+0x13e/0x1e0 block/genhd.c:819
bÀŒ%„#Rž»|fÍÅæ[  234.979465][T11482]        loop_remove drivers/block/loop.c:2081 [inline]
bÀŒ%„#Rž»|fÍÅæ[  234.979465][T11482]        loop_control_remove drivers/block/loop.c:2140 [inline]
bÀŒ%„#Rž»|fÍÅæ[  234.979465][T11482]        loop_control_ioctl+0x4eb/0x630 drivers/block/loop.c:2178
¼®ä·“Èl_Ià�\G_b[  234.981839][T11482]        __do_compat_sys_ioctl fs/ioctl.c:1005 [inline]
¼®ä·“Èl_Ià�\G_b[  234.981839][T11482]        __se_compat_sys_ioctl fs/ioctl.c:948 [inline]
¼®ä·“Èl_Ià�\G_b[  234.981839][T11482]        __ia32_compat_sys_ioctl+0x23f/0x370 fs/ioctl.c:948
‘h§Vi×ô?ÓNfgV¾Bp[  234.984163][T11482]        do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]
‘h§Vi×ô?ÓNfgV¾Bp[  234.984163][T11482]        __do_fast_syscall_32+0x7c/0x3a0 arch/x86/entry/syscall_32.c:306
I+¢ëh9ãµ?ªæ [  234.986400][T11482]        do_fast_syscall_32+0x32/0x80 arch/x86/entry/syscall_32.c:331
ïMvÀsîÀ½¹>Å'Çp›[  234.988602][T11482]        entry_SYSENTER_compat_after_hwframe+0x84/0x8e
MX¥sQâ�.™`ì�Ìlä[  234.991286][T11482] 
qëx©ÖIóê¶z4Rg[ƒ[  234.994371][T11482]        check_prev_add kernel/locking/lockdep.c:3168 [inline]
qëx©ÖIóê¶z4Rg[ƒ[  234.994371][T11482]        check_prevs_add kernel/locking/lockdep.c:3287 [inline]
qëx©ÖIóê¶z4Rg[ƒ[  234.994371][T11482]        validate_chain kernel/locking/lockdep.c:3911 [inline]
qëx©ÖIóê¶z4Rg[ƒ[  234.994371][T11482]        __lock_acquire+0x126f/0x1c90 kernel/locking/lockdep.c:5240
Òªa_®^íAHzôÎz/[  234.996519][T11482]        lock_acquire kernel/locking/lockdep.c:5871 [inline]
Òªa_®^íAHzôÎz/[  234.996519][T11482]        lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5828
fš2=ah×ÂeRW³ô³Î[  234.998553][T11482]        down_write+0x92/0x200 kernel/locking/rwsem.c:1577
5:
&É6„k,c’š›æ[  235.000504][T11482]        blk_mq_update_nr_hw_queues+0x32/0xcb0 block/blk-mq.c:5041
À#�‡VIVHF¿¦Ã[  235.002954][T11482]        nbd_start_device+0x172/0xcd0 drivers/block/nbd.c:1476
`à²ó�ù±‚
éWè[  235.005099][T11482]        nbd_start_device_ioctl drivers/block/nbd.c:1527 [inline]
éWè[  235.005099][T11482]        __nbd_ioctl drivers/block/nbd.c:1602 [inline]
éWè[  235.005099][T11482]        nbd_ioctl+0x219/0xda0 drivers/block/nbd.c:1642
Vo&Wõ’l�ÚËëIirŠ•[  235.007199][T11482]        compat_blkdev_ioctl+0x2ee/0x7a0 block/ioctl.c:760
‚·³æ�Údÿcÿ¦áË[  235.009416][T11482]        __do_compat_sys_ioctl fs/ioctl.c:1005 [inline]
‚·³æ�Údÿcÿ¦áË[  235.009416][T11482]        __se_compat_sys_ioctl fs/ioctl.c:948 [inline]
‚·³æ�Údÿcÿ¦áË[  235.009416][T11482]        __ia32_compat_sys_ioctl+0x23f/0x370 fs/ioctl.c:948
Ø2È-¤»Äðeƒd[  235.011817][T11482]        do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]
Ø2È-¤»Äðeƒd[  235.011817][T11482]        __do_fast_syscall_32+0x7c/0x3a0 arch/x86/entry/syscall_32.c:306
¸ŒDÛ*Žñ.=÷8ó—´¦[  235.014044][T11482]        do_fast_syscall_32+0x32/0x80 arch/x86/entry/syscall_32.c:331
ùÝ;øÓ?íw¤ž¡»1)[  235.016183][T11482]        entry_SYSENTER_compat_after_hwframe+0x84/0x8e
nÊß±[§uyøS W¸Òq…[  235.018768][T11482] 
·¦5ï'Zb·ÊŒÀ—0yùm[  235.022468][T11482] Chain exists of:
:åå}kk™´ |æ´V“[  235.027258][T11482]  Possible unsafe locking scenario:
×’;¬%×+îlÀ;·H[  235.030064][T11482]        CPU0                    CPU1
аï�#°ìoŸFœù€J[  235.032316][T11482]        ----                    ----
÷;öÎ
!YgŽòe4[  235.034467][T11482]   lock(&nbd->config_lock);
Ëóð<;ýÏ�¹®ˆØ#~­[  235.036367][T11482]                                lock(&disk->open_mutex);
•¦™OpµLª}qü(Qê¶[  235.039016][T11482]                                lock(&nbd->config_lock);
;‡¤gj<Ìó�N%Žü[  235.041733][T11482]   lock(&set->update_nr_hwq_lock);
QÁ=@£~NHNß„0‘4[  235.043812][T11482] 
Ùè¿	‚³›†gÅ«Êø¯[  235.046785][T11482] 1 lock held by syz.2.1726/11482:
GÇ,S0lâ,«åÃ�wm"[  235.048846][T11482]  #0: ffff888022f0b230 (&nbd->config_lock){+.+.}-{4:4}, at: nbd_ioctl+0x150/0xda0 drivers/block/nbd.c:1635
;öæÚïoÓÑûùæ¶ [  235.052525][T11482] 
`Ž�Hà7íÑvòÐå‘Ãâ½Iüj϶Uß(Á˜³þ³‹[  235.055507][T11482] CPU: 0 UID: 0 PID: 11482 Comm: syz.2.1726 Not tainted 6.15.0-syzkaller-10402-g4cb6c8af8591 #0 PREEMPT(full) 
cçÞ—ŒY­m�O[ïA¾[  235.055528][T11482] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
•YÉœ•0Ï€`‘Ø;‰W±[  235.055536][T11482] Call Trace:
©dÀªð×!ÐxX~# µ�–[  235.055541][T11482]  <TASK>
Ëÿ;ûàäÌâ`VHëˆ[  235.055547][T11482]  __dump_stack lib/dump_stack.c:94 [inline]
Ëÿ;ûàäÌâ`VHëˆ[  235.055547][T11482]  dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120
dUü„“°+ê“ø*í[  235.055563][T11482]  print_circular_bug+0x275/0x350 kernel/locking/lockdep.c:2046
us‡�ãþ^[6;מù9[<[  235.055603][T11482]  check_prev_add kernel/locking/lockdep.c:3168 [inline]
us‡�ãþ^[6;מù9[<[  235.055603][T11482]  check_prevs_add kernel/locking/lockdep.c:3287 [inline]
us‡�ãþ^[6;מù9[<[  235.055603][T11482]  validate_chain kernel/locking/lockdep.c:3911 [inline]
us‡�ãþ^[6;מù9[<[  235.055603][T11482]  __lock_acquire+0x126f/0x1c90 kernel/locking/lockdep.c:5240
µûíÁ¯*I41Á=„Æ[  235.055617][T11482]  lock_acquire kernel/locking/lockdep.c:5871 [inline]
µûíÁ¯*I41Á=„Æ[  235.055617][T11482]  lock_acquire+0x179/0x350 kernel/locking/lockdep.c:5828
E0´A¥²Ï�êÆÆPn‚Á][  235.055645][T11482]  ? __pfx___might_resched+0x10/0x10 kernel/sched/core.c:5899
“-„Y¹’¥ÔÃÍŒýï@z=[  235.055677][T11482]  down_write+0x92/0x200 kernel/locking/rwsem.c:1577
ðïÅò‰Õ8·†àÞ�É[  235.055690][T11482]  ? blk_mq_update_nr_hw_queues+0x32/0xcb0 block/blk-mq.c:5041
�[wñÝ+¯»´ØØ¿ÑbMU[  235.055718][T11482]  ? __mutex_lock_common kernel/locking/mutex.c:611 [inline]
�[wñÝ+¯»´ØØ¿ÑbMU[  235.055718][T11482]  ? __mutex_lock+0x1ca/0xb90 kernel/locking/mutex.c:746
lì•æÐe*ß4xå �[  235.055752][T11482]  blk_mq_update_nr_hw_queues+0x32/0xcb0 block/blk-mq.c:5041
½ƒÓ8³Xü�p€|&ÿd_[  235.055767][T11482]  ? __pfx___mutex_lock+0x10/0x10 usercopy_64.c:-1
ÊšÖµ�ÀËùì->…Eè[  235.055797][T11482]  nbd_start_device+0x172/0xcd0 drivers/block/nbd.c:1476
¡k]«Pת”	_pvš«[  235.055814][T11482]  ? bpf_lsm_capable+0x9/0x10 include/linux/lsm_hook_defs.h:44
S.ÄÊRúû^üfx,^[  235.055843][T11482]  ? __pfx_nbd_ioctl+0x10/0x10 drivers/block/nbd.c:828
É}m÷VŸ5p/Ó¯ù¾Y[  235.055862][T11482]  ? find_held_lock+0x2b/0x80 kernel/locking/lockdep.c:5353
NÄÇ�ŠS°9i`ØP[  235.055891][T11482]  compat_blkdev_ioctl+0x2ee/0x7a0 block/ioctl.c:760
€!‘(œm[,|"¥ûáF[  235.055904][T11482]  ? __pfx_compat_blkdev_ioctl+0x10/0x10 block/ioctl.c:702
 ¸çw]×eü4w¼~ÉÒh[  235.055931][T11482]  __do_compat_sys_ioctl fs/ioctl.c:1005 [inline]
 ¸çw]×eü4w¼~ÉÒh[  235.055931][T11482]  __se_compat_sys_ioctl fs/ioctl.c:948 [inline]
 ¸çw]×eü4w¼~ÉÒh[  235.055931][T11482]  __ia32_compat_sys_ioctl+0x23f/0x370 fs/ioctl.c:948
¡ÜÜ29 œ¨½bÅÚ¬[  235.055950][T11482]  do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]
¡ÜÜ29 œ¨½bÅÚ¬[  235.055950][T11482]  __do_fast_syscall_32+0x7c/0x3a0 arch/x86/entry/syscall_32.c:306
@ñ™×¯˜?ÐðT­ÄÑ[  235.055964][T11482]  do_fast_syscall_32+0x32/0x80 arch/x86/entry/syscall_32.c:331
æR¯›¶>KÒÛÚyZ+bt[  235.055977][T11482]  entry_SYSENTER_compat_after_hwframe+0x84/0x8e
«ÚžW Â-bQõÕŠ	[  235.055992][T11482] RIP: 0023:0xf7fc5579
~ìf£i�†hv‡^€ç|/[  235.056012][T11482] RSP: 002b:00000000f50e655c EFLAGS: 00000296 ORIG_RAX: 0000000000000036
˜xÅ$,YÕÕí	㣖[  235.056023][T11482] RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 000000000000ab03
ƒAœêÉ´ÃVÊGáHL[  235.056030][T11482] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
SMK�Ì*SuÝÊã—[  235.056036][T11482] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
L§ãÝ­ð8*Ì1m&ÞúQì[  235.056049][T11482] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
ópÏ¿5ƒæµ=ùXŸ¥­ú¤
Œ:==öB>];�oFÒÈçåjö+ X„þsëm‘ogI OPï¿½ç€ŽŽ›‹p±=w•«ñ“ûúå§©!z÷¢÷�[È­±×‚G$ë[�ûniUJœ\œBÔ°ǯJ¨Ûïz¢�ä�²žG«èYE¿]Apaxeê‰&1]Á/hâKDRkZ*°îE°k7ŸÜªcÐ,Ùk*Êu?'«†rÏ“kV}'r¦eàùSJÖÞ¦kpá„”ý¦³ð¿Ròó��œ$šH$ëÿ.Ä�<WýG@ú?^Â'ýë‘!Ža‘)È�éˆ�}Ž"ð“�Ü© XäxɉR´	G³B;è™â�ÿöj“a:NõÃÖ!Ï&ØÝç8°ó– ÀBÏërºÒSߨ|'V~z04`e«¯›Ãô„u*î¨�‡wBùJµÑ»Q͇bÂù™H12÷¿$¥Ïsaئr´º¢ðq˜{SαE±ÖMá<ë® ±?õøN¶î1ðjÒ³Õ±°D„%ÆK¢K¬£_ªÑ€mLØ’ËYͼ_²QMÄÀ㇡Ú;\�×*Pt¢û3ë¯+¬Ã|¢­œ¸Sn±Òl­?ò(�CG°ßÞv_0®ÚØ”÷ÇÙ§xðã±}"ß-Rß!ð‰O‡÷k/¤Sˆ¤ö™wñÃ&Ïð]-z�®~ß¡L‹/'÷ A’TÖH%�ÍÀ
·;gz&(üM=cÊaDÉ=ži ‡»YÕG¶CÓ«�[>`ü›�{“´“«­Ô^¾ýàç¦DYëÆÝÏ ÿïÛ†Idmy/kQm¶ëÌÏÒ£Ê9¹†�t�à�ÄôF˜VÜ�|¦A\`K—Gëô‰ÿJÓè˜%ô.í©RDh)ŽøT"/0ê¤Kâ�h»BçöÕûô&ýƈ“ÒJ¶+a
z9ÝY2®«z—˜…Å	ÄÚã�dXÑ[E�
SYZFAIL: failed to recv rpc
fd=3 want=4 recv=0 n=0 (errno 9: Bad file descriptor)
E³<�r�‹V9	'NuÌxq¢Þ=xƒðŠm§íTlzø=œÁÔcpzŒ>¢J¸ižVAoU˜m4T„[Ó-½>`Ѥg-;¨“3e-�ú4$¾ë…‹ô’¯º6#<¬ï¿½ï¿½[  235.199512][T11481] netlink: 4 bytes leftover after parsing attributes in process `syz.6.1727'.

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/06/01 00:24 upstream 4cb6c8af8591 3d2f584d .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in nbd_ioctl
* Struck through repros no longer work on HEAD.