Strange behaviour (processes "hung" in getblk state)
Robin P. Blanchard
robin.blanchard at gactr.uga.edu
Sat Jan 24 08:41:41 PST 2004
# top |fgrep makewhatis
20984 root -4 0 812K 716K getblk 1 0:03 0.00% 0.00%
makewhatis
# sysctl debug.enter_debugger=ddb
debug.enter_debuDgger: ebugger("debug.enter_debugger")
Stopped at Debugger+0x55: xchgl %ebx,in_Debugger.0
db> tr 20984
sched_switch(c5ff1000,2,c067cb2a,1d4,4a463321) at sched_switch+0x155
mi_switch(c5ff1000,50,c067cb2a,ca,1) at mi_switch+0x248
msleep(d26e9244,c06cc688,50,c0682e20,0) at msleep+0x4ff
acquire(e9b97a3c,2000020,600,e7,c0682aa7) at acquire+0xae
lockmgr(d26e9244,2090022,c6955e38,c5ff1000,c06d89e8) at lockmgr+0x457
getblk(c6955e38,0,0,800,0) at getblk+0x18f
breadn(c6955e38,0,0,800,0) at breadn+0x52
bread(c6955e38,0,0,800,0) at bread+0x4c
ffs_read(e9b97be4,c0684a6b,c5ff1000,1ff,c06d86f0) at ffs_read+0x3ff
vn_read(c62f7b6c,e9b97c80,c6292180,0,c5ff1000) at vn_read+0x1f5
dofileread(c5ff1000,c62f7b6c,4,80ee000,4000) at dofileread+0xdc
read(c5ff1000,e9b97d14,c069237a,3ee,3) at read+0x6b
syscall(806002f,2f,bfbf002f,806c158,4000) at syscall+0x2c0
Xint0x80_syscall() at Xint0x80_syscall+0x1d
--- syscall (3, FreeBSD ELF32, read), eip = 0x8061a4f, esp = 0xbfbfd3ac, ebp
= 0
xbfbfd3c8 ---
db>
-----Original Message-----
From: Ken Smith [mailto:kensmith at cse.Buffalo.EDU]
Sent: Thu 1/22/2004 1:50 PM
To: Robin P. Blanchard
Cc: Ken Smith; Kris Kennaway
Subject: Re: Strange behaviour
On Thu, Jan 22, 2004 at 01:34:39PM -0500, Robin P. Blanchard wrote:
> I also enabled DEBUG_VFS_LOCKS; but nothing of interest shows up
once
> 'makeshatis' gets stuck in getblk. I've just setup serial console
on this
> thing (along with BREAK_TO_DEBUGGER). How do I enter the debugger
over the
> serial link (I know how from the terminal console)? Once there do
just do a
> "tr $pid" to (hopefully) get some useful info ?
I was able to get there by logging in as root, then do:
sysctl debug.enter_debugger=ddb
That seems to drop the kernel to DDB on the serial port.
Here is what seems typical of the processes that are wedged on my
machine:
db> tr 1429
sched_switch(c9e0f690,2,c0872111,1d4,75752699) at sched_switch+0xb5
mi_switch(c9e0f690,50,c0872111,ca,1) at mi_switch+0x248
msleep(d3bb3564,c092f9dc,50,c08782a0,0) at msleep+0x4ff
acquire(edc26ab4,2000020,600,e7,c0877f27) at acquire+0xae
lockmgr(d3bb3564,2090022,c78af410,c9e0f690,c0669ae3) at lockmgr+0x457
getblk(c78af410,277b440,0,4000,0) at getblk+0x190
breadn(c78af410,277b440,0,4000,0) at breadn+0x52
bread(c78af410,277b440,0,4000,0) at bread+0x4c
ffs_update(c9650208,0,1,54,edc26c4c) at ffs_update+0x235
ufs_inactive(edc26c78,edc26c94,c069e77e,edc26c78,c087982c) at
ufs_inactive+0x205ufs_vnoperate(edc26c78,c087982c,c08794ad,7cc,c0910ce0) at
ufs_vnoperate+0x18
vrele(c9650208,0,c0879d73,2cb,c9b5ab00) at vrele+0x16e
fchdir(c9e0f690,edc26d14,c088ff8d,3ee,1) at fchdir+0x227
syscall(805002f,805002f,bfbf002f,5,8058f00) at syscall+0x2c0
Xint0x80_syscall() at Xint0x80_syscall+0x1d
--- syscall (13, FreeBSD ELF32, fchdir), eip = 0x280c616f, esp =
0xbfbfe92c, ebp = 0xbfbfe9c8 ---
db>
There is one that's wedged in "ufs" instead of "getblk", and it looks
like this:
db> tr 2062
sched_switch(c785e930,2,c0872111,1d4,9c0e2995) at sched_switch+0xb5
mi_switch(c785e930,50,c0872111,ca,1) at mi_switch+0x248
msleep(c83d55c0,c092f8e0,50,c087d04c,0) at msleep+0x4ff
acquire(edb68a54,1000040,600,e7,14b) at acquire+0xae
lockmgr(c83d55c0,1010002,c83d5514,c785e930,edb68a70) at lockmgr+0x457
vop_stdlock(edb68a98,edb68a7c,c07adda8,edb68a98,edb68ab4) at
vop_stdlock+0x2c
vop_defaultop(edb68a98,edb68ab4,c06ad4a9,edb68a98,edb68ab4) at
vop_defaultop+0x18
ufs_vnoperate(edb68a98,edb68ab4,c0635f3a,c83d5514,8) at
ufs_vnoperate+0x18
vn_lock(c83d5514,10002,c785e930,760,0) at vn_lock+0xf9
vget(c83d5514,2,c785e930,dbdde,c785e930) at vget+0x116
vfs_cache_lookup(edb68b8c,edb68ba8,c0697556,edb68b8c,c0887cd1) at
vfs_cache_lookup+0x2e2
ufs_vnoperate(edb68b8c,c0887cd1,c785e930,c063600d,c785e930) at
ufs_vnoperate+0x18
lookup(edb68c28,0,c0878f12,a6,c785e930) at lookup+0x376
namei(edb68c28,edb68c44,c0669ae3,c0934e80,c0934de0) at namei+0x27e
lstat(c785e930,edb68d14,c088ff8d,3ee,2) at lstat+0x52
syscall(806002f,805002f,bfbf002f,805e500,805e548) at syscall+0x2c0
Xint0x80_syscall() at Xint0x80_syscall+0x1d
--- syscall (190, FreeBSD ELF32, lstat), eip = 0x280c556f, esp =
0xbfbfebfc, ebp = 0xbfbfec98 ---
db>
--
Ken Smith
- From there to here, from here to |
kensmith at cse.buffalo.edu
there, funny things are everywhere. |
- Theodore Geisel |
More information about the freebsd-current
mailing list