#7039 closed bug (fixed)
[Network stack] Panic: _mutex_lock (): double lock
Reported by: | diver | Owned by: | axeld |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Network & Internet/Stack | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
This is hrev39980, gcc4hybrid.
Running tcpdump in the first Terminal tab and ifconfig del /dev/net/... in another one crashes network stack.
Same thing with running tcpdump and disabling interface in Network preflet.
Attachments (2)
Change History (10)
by , 14 years ago
Attachment: | stack_crash.png added |
---|
comment:1 by , 14 years ago
Summary: | [Network stack] crashes after ifconfig del + tcpdump → [Network stack] Panic: _mutex_lock (): double lock |
---|
comment:2 by , 10 years ago
comment:3 by , 10 years ago
I'm trying under vbox but cannot reproduce. The processes in both terminals are unkillable, though. The virtual NIC is connected using "NAT".
by , 10 years ago
Attachment: | 0001-Change-the-monitor_lock-to-be-a-recursive_lock-fixin.patch added |
---|
comment:5 by , 10 years ago
patch: | 0 → 1 |
---|
comment:6 by , 10 years ago
The problem is that notify_device_monitor acquires the monitor lock (a mutex), then indirectly calls unregister_device_monitor, which acquires the lock again. I changed the mutex_to a recursive_lock, and the problem goes away. Please someone review the patch.
comment:7 by , 10 years ago
Patch looks good. The only thing that is forbidden is to remove other handlers during notify.
comment:8 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Applied in hrev47876. Thank you Axel for the review!
Still here in hrev47314.