lkml.org 
[lkml]   [2008]   [Jul]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[BUG, NET] deadlock tearing down a bridged interface
Folks,

I just deadlocked networking on a 2.6.24 kernel. Basically I
was trying to restart the bridge interface I use for UML sessions
because it wasn't passing packets. This happens occasionally
when I leave a UML session too long in gdb, so I bounced the
bridge to get it working again.

Unfortunately, a UML session (2.6.25-rc9) was halting at the same
time, and instead of giving me a 'device busy' error, the
UML session stopped at:

Asking all remaining processes to terminate...done.
All processes ended within 1 seconds....done.
Saving random seed...done.
Deconfiguring network interfaces...

It appears to be stuck closing the tunnel interface it was using:

uml-linux D ffffffff804297c0 0 7437 7428
ffff8100798efe70 0000000000000086 0000000000000000 ffff81005348b400
ffff81003d820800 ffff81007df9a800 ffff81003d820a50 0000000100000000
00000000ffffffff ffff81003d820800 0000000000000000 0000000000000000
Call Trace:
[<ffffffff8024a85d>] lock_hrtimer_base+0x1b/0x3c
[<ffffffff804145f2>] __mutex_lock_slowpath+0x68/0xa3
[<ffffffff80414458>] mutex_lock+0xa/0xb
[<ffffffff803adcfe>] netdev_run_todo+0x14/0x21a
[<ffffffff885901dd>] :tun:tun_chr_close+0x70/0x76
[<ffffffff802990c7>] __fput+0xa1/0x16c
[<ffffffff802968f3>] filp_close+0x5d/0x65
[<ffffffff80297aca>] sys_close+0x8d/0xca
[<ffffffff8020be2e>] system_call+0x7e/0x83

At the same time that this command was running:

brctl delbr br0

dmesg showed:

unregister_netdevice: waiting for br0 to become free. Usage count = 7
unregister_netdevice: waiting for br0 to become free. Usage count = 7
unregister_netdevice: waiting for br0 to become free. Usage count = 7
unregister_netdevice: waiting for br0 to become free. Usage count = 7
unregister_netdevice: waiting for br0 to become free. Usage count = 7
unregister_netdevice: waiting for br0 to become free. Usage count = 7
....

brctl is stuck here:

brctl D ffffffff804297c0 0 8457 8448
ffff81004d8a3d98 0000000000000082 0000000000000286 ffffffff8023e0ea
ffff81000f941800 ffff81007d531000 ffff81000f941a50 000000014d8a3da8
000000012f98b3a2 000000012f98bbea 0000000000000286 ffffffff8023e280
Call Trace:
[<ffffffff8023e0ea>] lock_timer_base+0x26/0x4c
[<ffffffff8023e280>] __mod_timer+0xc3/0xd1
[<ffffffff8041423d>] schedule_timeout+0x8a/0xad
[<ffffffff8023ddde>] process_timeout+0x0/0x5
[<ffffffff80414238>] schedule_timeout+0x85/0xad
[<ffffffff8023e2a2>] msleep+0x14/0x1e
[<ffffffff803ade06>] netdev_run_todo+0x11c/0x21a
[<ffffffff88580599>] :bridge:br_del_bridge+0x4c/0x50
[<ffffffff88581281>] :bridge:br_ioctl_deviceless_stub+0x177/0x1e2
[<ffffffff80223598>] do_page_fault+0x352/0x6ca
[<ffffffff803a0ab6>] sock_ioctl+0x12c/0x200
[<ffffffff802a3849>] do_ioctl+0x21/0x6b
[<ffffffff802a3ad6>] vfs_ioctl+0x243/0x25c
[<ffffffff80296861>] fd_install+0x25/0x5a
[<ffffffff802a3b40>] sys_ioctl+0x51/0x71
[<ffffffff8020be2e>] system_call+0x7e/0x83

This is as much as I could get before sufficient stuff locked
up and I had to reboot.

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com


\
 
 \ /
  Last update: 2008-07-18 09:41    [W:0.061 / U:0.048 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site