Change History (6)

To do any debugging on this, we will need a full backtrace of all running threads from gdb. Also, we will need to see the logs around where this hangs. There are far too many threads to blindly find any deadlocks, sorry.

Changed 9 years ago by km@…

Changed 9 years ago by km@…

I've attached the gdb output including backtrace and the log of the whole myth session. The backend hung before the mythcommflag you will see in the log completed. I don't know how much earlier. I waited for the comm flag to finish before inducing the backend backtrace.

The deadlock was caused by a shared synchronization lock which was being
held by the main thread while waiting for the child thread to die, but the
child thread also uses that lock. I put back in the lock looping code that
seemed unnecessary, but obviously was.