Summary: | [GStreamer] Race condition causing deadlocks | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Sebastian Dröge (slomo) <slomo> | ||||||||
Component: | Media | Assignee: | Nobody <webkit-unassigned> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | commit-queue, pnormand | ||||||||
Priority: | P2 | ||||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | PC | ||||||||||
OS: | Linux | ||||||||||
Attachments: |
|
Description
Sebastian Dröge (slomo)
2009-10-14 04:19:21 PDT
Created attachment 41156 [details]
0001-Fix-race-condition-in-unlock-render-that-would-lead-.patch
Created attachment 41157 [details]
Stacktrace showing the deadlock
Comment on attachment 41156 [details]
0001-Fix-race-condition-in-unlock-render-that-would-lead-.patch
Man, threading is hairy =). So, what's causing the deadlock, exactly, again? The cond_wait in render and the mutex_lock in timeout_func racing when gstreamer fires ::unlock? Then you fix it by avoiding creating the timeout and doing the cond_wait in the first place if ::unlock() has fired on the element, is that it? Can you add a comment block somewhere explaining this?
Created attachment 41223 [details]
0001-Fix-race-condition-in-unlock-render-that-would-lead-.patch
Comment on attachment 41223 [details]
0001-Fix-race-condition-in-unlock-render-that-would-lead-.patch
Thanks!
Comment on attachment 41223 [details] 0001-Fix-race-condition-in-unlock-render-that-would-lead-.patch Clearing flags on attachment: 41223 Committed r49623: <http://trac.webkit.org/changeset/49623> All reviewed patches have been landed. Closing bug. |