Deadlock while running asterisk at high call volumes


I am having a deadlock when running high call volumes. The function the deadlock occurs in is

I found this bug report

however it seems that this has never been implemented. When I implement this (using a trylock rather than a lock) the problem is resolved.

Does anyone know why this fix has never been released ?


The issue report says it has been fixed.

r324364 | dvossel | 2011-06-21 21:11:52 +0100 (Tue, 21 Jun 2011) | 10 lines

Fixes locking inversion issue in ast_async_goto()

During this function we can not hold the “chan” lock while
doing the masquerade, the explicit goto on the tmp chan, or
the channel alloc. Instead we need to get the channel lock,
store off information about the channel that we need, and
then let the channel lock go for the remainder of the function.


It is included in and probably many other 1.8.x series releases, although not 1.8.1. It is also in branch 10, although as r324365.

Thanks a lot David

I forgot to mention that I am currently running, so I’ll upgrade and check the fix