[BUG] Deadlock on create new wire brick
Bug #1169265 reported by
Marco Giusti
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Virtualbricks |
Fix Released
|
Undecided
|
Marco Giusti |
Bug Description
Steps to reproduce the bug:
1. # rm -r ~/.virtualbricks*
2. start virtualbricks
3. create a new wire
What happens:
The gui freeze on a futex.
Further informations:
On start the gui reports there are some components not found: vde_switch vde_plug vde_cryptcab dpipe vdeterm vde_plug2tap wirefilter vde_router.
Related branches
Changed in virtualbrick: | |
assignee: | nobody → mg (marco-giusti) |
Changed in virtualbrick: | |
status: | New → Fix Committed |
summary: |
- Deadlock on create new wire brick + [BUG] Deadlock on create new wire brick |
Changed in virtualbrick: | |
status: | Fix Committed → Fix Released |
milestone: | none → 1.0 |
To post a comment you must log in.
The problem is in virtualbricks. gui.gui: 270. `brickfactory. newbrick` is threads_ enter() ` is destinated to deadlock. Something like:
called from the main thread and not from the brickfactory thread (the
method is invoked from the gui), so every calls to
`gtk.gdk.
lock = threading.Lock() meaning_ of_life( )
with lock: # here is acquired
with lock: # here the deadlock
print self.the_
Mixing threads is bad, brickfactory is not threadsafe and works only
because just one thread at time is using it but if two threads try to
manipulate it nothing good will happen.