Unfortunately, we do keep running into total deadlocks with this
approach under high load. We've had to revert async call processing
(with mqueue + rtimer + t_suspend) back to non-async because the
deadlocks were growing politically unacceptable.
I never managed to get a backtrace of the state of the processes at the
time the deadlock occurs, because the customer would soon restart the
proxy when this happened, as it would happen during busy times in the
middle of production days. The only core dumps I have are the crashes on
shutdown, which strikes me as incidental/irrelevant.
--
Alex Balashov | Principal | Evariste Systems LLC
303 Perimeter Center North, Suite 300
Atlanta, GA 30346
United States
Tel: +1-800-250-5920 (toll-free) / +1-678-954-0671 (direct)
Web:
http://www.evaristesys.com/,
http://www.csrpswitch.com/