NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/38642: hang during unmount of mfs:/tmp during reboot



>Number:         38642
>Category:       kern
>Synopsis:       hang during unmount of mfs:/tmp during reboot
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon May 12 18:50:00 +0000 2008
>Originator:     Greg A. Woods
>Release:        NetBSD 4.99.62 2008/05/12
>Organization:
Planix, Inc.; Toronto, Ontario; Canada
>Environment:
System: NetBSD 4.99.62 (GENERIC)
Architecture: i386
Machine: i386
>Description:

        The system hangs consistently during rebot at the point where it
        goes to unmount the MFS /tmp.  Sometimes it gives a lock error
        during the backtrace in DDB, like the following, and sometimes
        only after trying to reboot from DDB, as in the second example.

        This all worked fine up until a couple of days ago (may 5? 7?).

historically# reboot -q
syncing disks... 1 done
unmounting file systems...
unmounting /kern (kernfs)...ok,
unmounting /tmp (mfs:156)...[halt sent]
Stopped in pid 0.15 (system) at netbsd:breakpoint+0x4:  popl    %ebp
db{1}> bt
breakpoint(0,3f8,5,2,c0ba0320,c301950c,d132df6c,c30af21e,c30b0000,800) at 
netbsd:breakpoint+0x4
comintr(c3019400,d1321c50,deadbeef,1,46353148,9,0,0,0,0) at netbsd:comintr+0x575
DDB lost frame for netbsd:Xintr_ioapic_edge1+0xa9, trying 0xd132df74
Xintr_ioapic_edge1() at netbsd:Xintr_ioapic_edge1+0xa9
--- interrupt ---
--- switch to interrupt stack ---
x86_pause(1,64,c01aaa60,0,104,c0ba0320,d1321d40,c04c2d63,0,cc6b09c0) at 
netbsd:x86_pause+0x2
nd6_timer(0,cc6b09c0,7,d1325000,d1317074,d1325068,d1325870,d1326070,d1326870,c01aaa60)
 at netbsd:nd6_timer+0x4e
callout_softclock(0,0,0,0,0,0,0,0,0,0) at netbsd:callout_softclock+0x243
softint_dispatch(cc6a9280,2,0,0,0,0,d1321d90,d1321d28,cc6b09c0,28) at 
netbsd:softint_dispatch+0xb7
DDB lost frame for netbsd:Xsoftintr+0x3d, trying 0xd1321d88
Xsoftintr() at netbsd:Xsoftintr+0x3d
--- interrupt ---
Reader / writer lock error: rw_vector_enter: assertion failed: !cpu_intr_p()

lock address : 0x00000000c0bb0944 type     :     sleep/adaptive
shared holds :                  0 exclusive:                  0
shares wanted:                  0 exclusive:                  0
current cpu  :                  1 last held:                  1
current lwp  : 0x00000000cc6b09c0 last held: 000000000000000000
last locked  : 0x00000000c044a449 unlocked : 0x00000000c044d97b
initialized  : 0x00000000c04497ca
owner/count  : 000000000000000000 flags    : 0x0000000000000008

Turnstile chain at 0xc0bb2240.
=> No active turnstile for this lock.

panic: LOCKDEBUG
Stopped in pid 0.15 (system) at netbsd:breakpoint+0x4:  popl    %ebp
db{1}> x/I 0x00000000c04497ca
netbsd:uvm_map_setup+0x7a:      movl    $0xc0a5ee3e,%eax
db{1}> x/I 0x00000000c044a449
netbsd:vm_map_lock+0x69:        movl    0x8(%ebx),%edx
db{1}> x/I 0x00000000c044d97b
netbsd:uvmspace_fork+0x2cb:     movl    0x8(%ebp),%edx
db{1}> 



historically# reboot -q
syncing disks... 4 done
unmounting file systems...
unmounting /kern (kernfs)...ok,
unmounting /tmp (mfs:156)...[halt sent]
Stopped in pid 1174.1 (reboot) at       netbsd:breakpoint+0x4:  popl    %ebp
db{1}> trace
breakpoint(0,3f8,5,0,d1324000,c301850c,d1324068,c30ae142,c30af000,800) at 
netbsd:breakpoint+0x4
comintr(c3018400,d213fa0c,deadbeef,1,46353148,9,0,0,0,0) at netbsd:comintr+0x575
DDB lost frame for netbsd:Xintr_ioapic_edge1+0xa9, trying 0xd132cf74
Xintr_ioapic_edge1() at netbsd:Xintr_ioapic_edge1+0xa9
--- interrupt ---
--- switch to interrupt stack ---
Xspllower(0,c0520fbc,0,0,0,d1dacc48,4,c04a6552,0,c040dde8) at 
netbsd:Xspllower+0xf
mutex_vector_enter(d20b8ce0,c040ded2,0,d1dacc48,0,d20b8c3c,d213fb6c,c040df0a,d20b8ce0,20002)
 at netbsd:mutex_vector_enter+0x202
vn_lock(d20b8ce0,20002,1,0,0,0,0,d20b8c3c,d1edd000,d20b8c3c) at 
netbsd:vn_lock+0x9c
ffs_sync(d1edd000,1,cc6a5d80,0,0,d1edd000,d213fbbc,c051ef6d,d1edd000,1) at 
netbsd:ffs_sync+0x1da
VFS_SYNC(d1edd000,1,cc6a5d80,101a,80000,d20b8b98,1,d1edd000,d1edd0f8,d1cdf000) 
at netbsd:VFS_SYNC+0x2c
dounmount(d1edd000,80000,d2261380,0,d213fbf8,d2261380,0,d2261380,d213fd00,c0af0180)
 at netbsd:dounmount+0xfd
vfs_unmountall(d2261380,0,0,c048d4dd,cc69a238,0,d213fc2c,c05945bc,0,d2261380) 
at netbsd:vfs_unmountall+0xa0
vfs_shutdown(0,d2261380,0,0,d213fd00,0,d213fcdc,c04c5284,0,0) at 
netbsd:vfs_shutdown+0x8d
cpu_reboot(0,0,0,0,0,0,ffffffff,0,d226a400,8000000) at netbsd:cpu_reboot+0x19c
sys_reboot(d2261380,d213fd00,d213fd28,804d78c,804d000,d2272dd0,1,0,0,806d735) 
at netbsd:sys_reboot+0x74
syscall(d213fd48,b3,ab,1f,1f,806d72c,bfbffb49,bfbfea28,8073658,1) at 
netbsd:syscall+0xab
db{1}> reboot
Mutex error: lockdebug_wantlock: acquiring sleep lock from interrupt context

lock address : 0x00000000c0bb158c type     :     sleep/adaptive
shared holds :                  0 exclusive:                  0
shares wanted:                  0 exclusive:                  0
current cpu  :                  1 last held:                  0
current lwp  : 0x00000000d2261380 last held: 000000000000000000
last locked  : 0x00000000c04c6a1c unlocked : 0x00000000c04c6a8e
initialized  : 0x00000000c04c7a85
owner field  : 000000000000000000 wait/spin:                0/0

Turnstile chain at 0xc0bb13a0.
=> No active turnstile for this lock.

panic: LOCKDEBUG
Stopped in pid 1174.1 (reboot) at       netbsd:breakpoint+0x4:  popl    %ebp
db{1}> x/I 0x00000000c04c7a85
netbsd:config_init+0x35:        movl    $0xc0a6a470,%eax
db{1}> x/I 0x00000000c04c6a1c
netbsd:config_devlink+0xec:     movl    netbsd:alldevs_nwrite,%eax
db{1}> x/I 0x00000000c04c6a8e
netbsd:config_devlink+0x15e:    addl    $0x1c,%esp
db{1}> reboot
rebooting...


>How-To-Repeat:

        use MFS /tmp and reboot with "reboot -q" (to avoid sending
        SIGTERM to mount_mfs)

        swap    /tmp    mfs     rw,-s=512m,nodev,nosuid


>Fix:

        unknown



Home | Main Index | Thread Index | Old Index