From: FFADO <ffa...@ff...> - 2011-06-18 13:14:48
|
#306: jackd segfaults while terminating when using the Juju stack -----------------------+---------------------------------------------------- Reporter: koniu | Owner: Type: bug | Status: reopened Priority: major | Milestone: Component: generic | Version: FFADO 2.0.1 Resolution: | Keywords: Device_name: | -----------------------+---------------------------------------------------- Comment (by jwoithe): And another thing. The in roos's log, the double free crash that's triggered actually stems from the first disable() call at 06438135810, not the second at 06438143903 (you can tell from the backtrace). That's easily explained though - for one reason or another the second disable() call's raw1394_destroy_handle() returned quickly and permitted that thread to continue. Eventually the first call's raw1394_destroy_handle() woke up and triggered the double-free since the handle it was working on has since been disposed of by that second call. But why did the second thread get that far into disable() - the disable_lock mutex should have prevented that, especially with your mod which took out the EBUSY conditional. In all this though I keep coming back to the question as to why the mutex locking seems to be completely ineffective here. The crashes you and roos are seeing appear to suggest that all the disable_lock mutex operations are no-ops. About the only thing I can think of which could cause that would be heap corruption in some other section of code which took out disable_lock, most likely completely unrelated to what we're presently looking at. -- Ticket URL: <http://subversion.ffado.org/ticket/306#comment:16> FFADO <http://subversion.ffado.org/index.fcgi> Free Firewire Audio Drivers |