ufs deadlock
Jeff Roberson
jroberson at chesapeake.net
Wed Mar 23 21:23:55 PST 2005
Interestingly, this is the same as the buf leak that peter holm reported.
What is most interesting is that this seems to be a buf from a directory
vnode!
On Tue, 22 Mar 2005, Kris Kennaway wrote:
> -current from 3 days ago on a UP machine:
>
> db> show lockedvnods
> Locked vnodes
>
> 0xc2e7d8e0: tag ufs, type VDIR
> usecount 3, writecount 0, refcount 6 mountedhere 0
> flags ()
> v_object 0xc2a59e70 ref 0 pages 1
> lock type ufs: EXCL (count 1) by thread 0xc2dc0320 (pid 57151)
> ino 97856, on dev ad0d
>
> 0xc3398238: tag ufs, type VDIR
> usecount 4, writecount 0, refcount 6 mountedhere 0
> flags ()
> v_object 0xc1f36084 ref 0 pages 1
> lock type ufs: EXCL (count 1) by thread 0xc3293c80 (pid 54851) with =
1 pending
> ino 97861, on dev ad0d
>
> 0xc3bf1d50: tag ufs, type VDIR
> usecount 3, writecount 0, refcount 5 mountedhere 0
> flags ()
> v_object 0xc2ad5420 ref 0 pages 1
> lock type ufs: EXCL (count 1) by thread 0xc2dc14b0 (pid 47443) with =
1 pending
> ino 97868, on dev ad0d
> db> ps
> pid proc uid ppid pgrp flag stat wmesg wchan cmd
> 57314 c1b99de4 0 57312 57314 0004002 [SLPQ ttyin 0xc1a75c10][SLP] csh
> 57312 c2f60000 0 367 57312 0004100 [SLPQ select 0xc07e0ba4][SLP] ssh=
d
> 57151 c2dc2de4 0 57117 57107 0004000 [SLPQ ufs 0xc3398298][SLP] rm
> 57117 c1f4abe8 0 57108 57107 0004000 [SLPQ wait 0xc1f4abe8][SLP] sh
> 57108 c249b000 0 57107 57107 0004000 [SLPQ wait 0xc249b000][SLP] sh
> 57107 c249b1fc 0 57105 57107 0004000 [SLPQ pause 0xc249b230][SLP] csh
> 57105 c32929ec 0 367 57105 0004100 [SLPQ select 0xc07e0ba4][SLP] ssh=
d
> 54851 c19fe5f4 0 54841 54734 0004000 [SLPQ ufs 0xc3bf1db0][SLP] find
> 54848 c249d7f0 0 54846 54734 0004000 [SLPQ piperd 0xc1ba5d80][SLP] cat
> 54846 c2f601fc 0 54835 54734 0000000 [SLPQ wait 0xc2f601fc][SLP] sh
> 54845 c2dc23f8 0 54835 54734 0004000 [SLPQ piperd 0xc1ba5c00][SLP] sor=
t
> 54844 c249b7f0 0 54835 54734 0004000 [SLPQ piperd 0xc1ba6780][SLP] sed
> 54842 c2f60de4 0 54835 54734 0004000 [SLPQ piperd 0xc329a180][SLP] xar=
gs
> 54841 c2f603f8 0 54835 54734 0000000 [SLPQ wait 0xc2f603f8][SLP] sh
> 54835 c32985f4 0 54832 54734 0004000 [SLPQ wait 0xc32985f4][SLP] sh
> 54834 c2f60be8 0 54833 54734 0004000 [SLPQ piperd 0xc1ba5780][SLP] mai=
l
> 54833 c249bde4 0 54826 54734 0000000 [SLPQ wait 0xc249bde4][SLP] sh
> 54832 c2f627f0 0 54826 54734 0000000 [SLPQ wait 0xc2f627f0][SLP] sh
> 54826 c249d3f8 0 54825 54734 0004000 [SLPQ wait 0xc249d3f8][SLP] sh
> --More-- =0054825 c249d9ec 0 54742 54734 0004000 [SLPQ wait 0xc=
249d9ec][SLP] sh
> 54744 c2dc27f0 0 54743 54734 0004000 [SLPQ piperd 0xc2544900][SLP] mai=
l
> 54743 c2f629ec 0 54736 54734 0000000 [SLPQ wait 0xc2f629ec][SLP] sh
> 54742 c1f4a7f0 0 54736 54734 0000000 [SLPQ wait 0xc1f4a7f0][SLP] sh
> 54736 c249b3f8 0 54734 54734 0004000 [SLPQ wait 0xc249b3f8][SLP] sh
> 54734 c2d945f4 0 54732 54734 0004000 [SLPQ wait 0xc2d945f4][SLP] sh
> 54732 c2f623f8 0 382 382 0000000 [SLPQ piperd 0xc1ba6480][SLP] cro=
n
> 47443 c32927f0 0 47440 43083 0004000 [SLPQ getblk 0xcbef49b0][SLP] mtr=
ee
> 47440 c3292de4 0 1 43083 0004000 [SLPQ wait 0xc3292de4][SLP] sh
> 549 c1f4a000 0 1 549 0004002 [SLPQ ttyin 0xc1a96c10][SLP] gett=
y
> 548 c1f495f4 0 1 548 0004002 [SLPQ ttyin 0xc1a95810][SLP] gett=
y
> 547 c1f499ec 0 1 547 0004002 [SLPQ ttyin 0xc1a95c10][SLP] gett=
y
> 546 c19fe7f0 0 1 546 0004002 [SLPQ ttyin 0xc1a96010][SLP] gett=
y
> 545 c1f49000 0 1 545 0004002 [SLPQ ttyin 0xc1a78010][SLP] gett=
y
> 544 c1f4a3f8 0 1 544 0004002 [SLPQ ttyin 0xc1a68c10][SLP] gett=
y
> 543 c1b995f4 0 1 543 0004002 [SLPQ ttyin 0xc1a77810][SLP] gett=
y
> 542 c1f497f0 0 1 542 0004002 [SLPQ ttyin 0xc1a68010][SLP] gett=
y
> 541 c1b99be8 0 1 541 0004002 [SLPQ ttyin 0xc1a78810][SLP] gett=
y
> 529 c19fe3f8 0 1 529 0000000 [SLPQ select 0xc07e0ba4][SLP] ine=
td
> 511 c1f4a5f4 100 497 511 0004000 [SLPQ piperd 0xc1ba5300][SLP] unl=
inkd
> --More-- =00 497 c1f491fc 100 492 492 0004000 [SLPQ select 0=
xc07e0ba4][SLP] squid
> 492 c1f4a1fc 100 1 492 0000000 [SLPQ wait 0xc1f4a1fc][SLP] squid
> 478 c1f493f8 102 1 477 0008180 (threaded) gmond
> thread 0xc2dc0000 ksegrp 0xc1962960 [SLPQ kserel 0xc1962994][SLP]
> thread 0xc2f614b0 ksegrp 0xc1962960 [SLPQ sbwait 0xc1b86334][SLP]
> thread 0xc32934b0 ksegrp 0xc1962960 [SLPQ accept 0xc1b86186][SLP]
> thread 0xc1b9b7d0 ksegrp 0xc19623c0 [SLPQ ksesigwait 0xc1f49530][SLP]
> 382 c1b993f8 0 1 382 0000000 [SLPQ nanslp 0xc0795c8c][SLP] cro=
n
> 367 c1b997f0 0 1 367 0000100 [SLPQ select 0xc07e0ba4][SLP] ssh=
d
> 352 c19fede4 0 1 352 0000000 [SLPQ select 0xc07e0ba4][SLP] ntp=
d
> 277 c1b991fc 0 0 0 0000204 [SLPQ mdwait 0xc1ec5000][SLP] md2
> 244 c19fe9ec 0 1 244 0000000 [SLPQ select 0xc07e0ba4][SLP] sys=
logd
> 224 c1b999ec 0 1 224 0000000 [SLPQ select 0xc07e0ba4][SLP] dev=
d
> 114 c19febe8 0 0 0 0000204 [SLPQ mdwait 0xc1c2b800][SLP] md1
> 72 c1b99000 0 0 0 0000204 [SLPQ mdwait 0xc1a08800][SLP] md0
> 42 c19a1be8 0 0 0 0000204 [SLPQ - 0xc07e8cac][SLP] nfsiod 3
> 41 c19a1de4 0 0 0 0000204 [SLPQ - 0xc07e8ca8][SLP] nfsiod 2
> 40 c19fb000 0 0 0 0000204 [SLPQ - 0xc07e8ca4][SLP] nfsiod 1
> 39 c19fb1fc 0 0 0 0000204 [SLPQ - 0xc07e8ca0][SLP] nfsiod 0
> 38 c19fb3f8 0 0 0 0000204 [SLPQ syncer 0xc07959ec][SLP] syn=
cer
> --More-- =00 37 c19fb5f4 0 0 0 0000204 [SLPQ vlruwt 0=
xc19fb5f4][SLP] vnlru
> 36 c19fb7f0 0 0 0 0000204 [SLPQ psleep 0xc07e10f0][SLP] buf=
daemon
> 9 c19fb9ec 0 0 0 000020c [SLPQ pgzero 0xc07ea104][SLP] pag=
ezero
> 8 c19fbbe8 0 0 0 0000204 [SLPQ psleep 0xc07e9c54][SLP] vmd=
aemon
> 7 c19fbde4 0 0 0 0000204 [SLPQ psleep 0xc07e9c10][SLP] pag=
edaemon
> 35 c19fe000 0 0 0 0000204 [IWAIT] swi0: sio
> 34 c19fe1fc 0 0 0 0000204 [IWAIT] swi5:+
> 6 c19985f4 0 0 0 0000204 [SLPQ - 0xc19fa680][SLP] thread t=
askq
> 33 c19987f0 0 0 0 0000204 [IWAIT] swi6:+
> 32 c19989ec 0 0 0 0000204 [IWAIT] swi6: task queue
> 31 c1998be8 0 0 0 0000204 [IWAIT] swi2: cambio
> 5 c1998de4 0 0 0 0000204 [SLPQ - 0xc19fa900][SLP] kqueue t=
askq
> 30 c19a1000 0 0 0 0000204 [SLPQ - 0xc07905c0][SLP] yarrow
> 4 c19a11fc 0 0 0 0000204 [SLPQ - 0xc0793088][SLP] g_down
> 3 c19a13f8 0 0 0 0000204 [SLPQ - 0xc0793084][SLP] g_up
> 2 c19a15f4 0 0 0 0000204 [SLPQ - 0xc079307c][SLP] g_event
> 29 c19a17f0 0 0 0 0000204 [IWAIT] swi1: net
> 28 c19a19ec 0 0 0 0000204 [IWAIT] swi3: vm
> 27 c19631fc 0 0 0 000020c [IWAIT] swi4: clock sio
> 26 c19633f8 0 0 0 0000204 [IWAIT] irq15: ata1
> --More-- =00 25 c19635f4 0 0 0 0000204 [IWAIT] irq14:=
ata0
> 24 c19637f0 0 0 0 0000204 [IWAIT] irq13:
> 23 c19639ec 0 0 0 0000204 [IWAIT] irq12:
> 22 c1963be8 0 0 0 0000204 [IWAIT] irq11:
> 21 c1963de4 0 0 0 0000204 [IWAIT] irq10: fxp0
> 20 c1998000 0 0 0 0000204 [IWAIT] irq9:
> 19 c19981fc 0 0 0 0000204 [IWAIT] irq8: rtc
> 18 c19983f8 0 0 0 0000204 [IWAIT] irq7: ppc0
> 17 c195e000 0 0 0 0000204 [IWAIT] irq6:
> 16 c195e1fc 0 0 0 0000204 [IWAIT] irq5:
> 15 c195e3f8 0 0 0 0000204 [IWAIT] irq4: sio0
> 14 c195e5f4 0 0 0 0000204 [IWAIT] irq3: sio1
> 13 c195e7f0 0 0 0 0000204 [IWAIT] irq1: atkbd0
> 12 c195e9ec 0 0 0 0000204 [IWAIT] irq0: clk
> 11 c195ebe8 0 0 0 000020c [CPU 0] idle
> 1 c195ede4 0 0 1 0004200 [SLPQ wait 0xc195ede4][SLP] init
> 10 c1963000 0 0 0 0000204 [SLPQ ktrace 0xc0793c18][SLP] ktr=
ace
> 0 c0793180 0 0 0 0000200 [SLPQ sched 0xc0793180][SLP] swap=
per
> db> =08 =08wh 57151
> Tracing pid 57151 tid 100102 td 0xc2dc0320
> sched_switch(c2dc0320,0,1,11e,b172c4b5) at sched_switch+0x150
> mi_switch(1,0,c073438b,1ab,0) at mi_switch+0x2d6
> sleepq_switch(c3398298,c0730e4a,18a,0,d6af1904) at sleepq_switch+0x134
> sleepq_wait(c3398298,0,c0732105,da,0) at sleepq_wait+0x41
> msleep(c3398298,c07950dc,50,c073848a,0) at msleep+0x405
> acquire(d6af1960,1010040,600,ee,c2dc0320) at acquire+0xae
> lockmgr(c3398298,1010002,c33982bc,c2dc0320,d6af1988) at lockmgr+0x43f
> vop_stdlock(d6af19e8,c0730e4a,12b,c3398238,d6af19a8) at vop_stdlock+0x32
> VOP_LOCK_APV(c0780100,d6af19e8,c07e9780,0,d6af19e8) at VOP_LOCK_APV+0xbc
> ffs_lock(d6af19e8,1dd,c072fda9,10002,d6af1a04) at ffs_lock+0x90
> VOP_LOCK_APV(c077fd60,d6af19e8,c33982bc,6ed,c073a1c1) at VOP_LOCK_APV+0xb=
c
> vn_lock(c3398238,10002,c2dc0320,6ed,c07e12a0) at vn_lock+0xbf
> vget(c3398238,2,c2dc0320,774fa2,c2dc0320) at vget+0x11f
> vfs_cache_lookup(d6af1afc,c2e7d8e0,d6af1bd0,c2e7d8e0,d6af1b18) at vfs_cac=
he_lookup+0x1e1
> VOP_LOOKUP_APV(c077fd60,d6af1afc,c2dc0320,725,0) at VOP_LOOKUP_APV+0xbc
> lookup(d6af1ba8,0,c0739bb9,a9,790) at lookup+0x3d0
> namei(d6af1ba8,d6af1bf8,60,0,c2dc0320) at namei+0x428
> kern_lstat(c2dc0320,804f5a8,0,d6af1c7c,a56) at kern_lstat+0x4f
> lstat(c2dc0320,d6af1d14,8,3ff,2) at lstat+0x2f
> syscall(c06e002f,2f,2f,804f548,804f500) at syscall+0x2a0
> --More-- =00Xint0x80_syscall() at Xint0x80_syscall+0x1f
> --- syscall (190, FreeBSD ELF32, lstat), eip =3D 0x280be1bf, esp =3D 0xbf=
bfeafc, ebp =3D 0xbfbfeb98 ---
> db> wh 54851
> Tracing pid 54851 tid 100138 td 0xc3293c80
> sched_switch(c3293c80,0,1,11e,116578fd) at sched_switch+0x150
> mi_switch(1,0,c073438b,1ab,0) at mi_switch+0x2d6
> sleepq_switch(c3bf1db0,c0730e4a,18a,0,d6ba1904) at sleepq_switch+0x134
> sleepq_wait(c3bf1db0,0,c0732105,da,0) at sleepq_wait+0x41
> msleep(c3bf1db0,c07951d8,50,c073848a,0) at msleep+0x405
> acquire(d6ba1960,1010040,600,ee,c3293c80) at acquire+0xae
> lockmgr(c3bf1db0,1010002,c3bf1dd4,c3293c80,d6ba1988) at lockmgr+0x43f
> vop_stdlock(d6ba19e8,600,1,c3bf1d50,d6ba19a8) at vop_stdlock+0x32
> VOP_LOCK_APV(c0780100,d6ba19e8,c3398238,c3fdf6a8,d6ba19e8) at VOP_LOCK_AP=
V+0xbc
> ffs_lock(d6ba19e8,1dd,c072fda9,10002,d6ba1a04) at ffs_lock+0x90
> VOP_LOCK_APV(c077fd60,d6ba19e8,c3bf1dd4,6ed,c073a1c1) at VOP_LOCK_APV+0xb=
c
> vn_lock(c3bf1d50,10002,c3293c80,6ed,c07e12a0) at vn_lock+0xbf
> vget(c3bf1d50,2,c3293c80,774f9b,c3293c80) at vget+0x11f
> vfs_cache_lookup(d6ba1afc,c3398238,d6ba1bd0,c3398238,d6ba1b18) at vfs_cac=
he_lookup+0x1e1
> VOP_LOOKUP_APV(c077fd60,d6ba1afc,c3293c80,725,0) at VOP_LOOKUP_APV+0xbc
> lookup(d6ba1ba8,0,c0739bb9,a9,790) at lookup+0x3d0
> namei(d6ba1ba8,d6ba1bf8,60,0,c3293c80) at namei+0x428
> kern_lstat(c3293c80,80583a8,0,d6ba1c7c,a56) at kern_lstat+0x4f
> lstat(c3293c80,d6ba1d14,8,3ff,2) at lstat+0x2f
> syscall(806002f,806002f,bfbf002f,8058348,8058300) at syscall+0x2a0
> --More--=00 =00Xint0x80_syscall() at Xint0x80_syscall+0x1f
> --- syscall (190, FreeBSD ELF32, lstat), eip =3D 0x280c31bf, esp =3D 0xbf=
bfebdc, ebp =3D 0xbfbfec78 ---
> db> wh 47443
> Tracing pid 47443 tid 100113 td 0xc2dc14b0
> sched_switch(c2dc14b0,0,1,11e,7ff5fbc3) at sched_switch+0x150
> mi_switch(1,0,c073438b,1ab,0) at mi_switch+0x2d6
> sleepq_switch(cbef49b0,c0730e4a,18a,0,d6b12a10) at sleepq_switch+0x134
> sleepq_wait(cbef49b0,0,c0732105,da,0) at sleepq_wait+0x41
> msleep(cbef49b0,c0794770,50,c0738f80,0) at msleep+0x405
> acquire(d6b12a6c,2010020,600,ee,c2dc14b0) at acquire+0xae
> lockmgr(cbef49b0,2090022,c3bf1dd4,c2dc14b0,c3398238) at lockmgr+0x43f
> getblk(c3bf1d50,0,0,1000,0) at getblk+0x175
> breadn(c3bf1d50,0,0,1000,0) at breadn+0x52
> bread(c3bf1d50,0,0,1000,0) at bread+0x4c
> ffs_read(d6b12c00,d6b12bb0,c058d942,d6b12cb8,d6b12c2c) at ffs_read+0x271
> VOP_READ_APV(c077fd60,d6b12c00,c0709b7c,d6b12c28,c33982bc) at VOP_READ_AP=
V+0xbc
> ufs_readdir(d6b12c98,0,0,c3bf1d50,d6b12ce4) at ufs_readdir+0xd3
> VOP_READDIR_APV(c077fd60,d6b12c98,c2dc14b0,d6b12c88,0) at VOP_READDIR_APV=
+0xbc
> getdirentries(c2dc14b0,d6b12d14,10,3ff,4) at getdirentries+0x15e
> syscall(805002f,805002f,bfbf002f,805e000,805e000) at syscall+0x2a0
> Xint0x80_syscall() at Xint0x80_syscall+0x1f
> --- syscall (196, FreeBSD ELF32, getdirentries), eip =3D 0x280d181b, esp =
=3D 0xbfbfe6bc, ebp =3D 0xbfbfe6d8 ---
> db>
More information about the freebsd-current
mailing list