Hello!

Unfortunately we are seeing lately (2-3 times during a day) that asterisk seems to hang up somehow - no new calls can be made and sip show peers and other commands show no obvious problem. We then recompiled 1.2.7.1 with all the DEBUG_ turned on in the makefile and now we see the following messages:

May 17 06:46:05 ERROR[8606]: ../include/asterisk/lock.h:236 __ast_pthread_mutex_lock: chan_sip.c line 3116 (sip_alloc): Deadlock? waited 460 sec for mutex '&iflock'? May 17 06:46:05 ERROR[8606]: ../include/asterisk/lock.h:239 __ast_pthread_mutex_lock: chan_sip.c line 11257 (do_monitor): '&iflock' was locked here. May 17 06:46:05 ERROR[8625]: include/asterisk/lock.h:236 __ast_pthread_mutex_lock: pbx.c line 2017 (ast_extension_state_del): Deadlock? waited 460 sec for mutex '&hintlock'? May 17 06:46:05 ERROR[8625]: include/asterisk/lock.h:239 __ast_pthread_mutex_lock: pbx.c line 1892 (ast_hint_state_changed): '&hintlock' was locked here. May 17 06:46:05 ERROR[8606]: ../include/asterisk/lock.h:236 __ast_pthread_mutex_lock: chan_sip.c line 3116 (sip_alloc): Deadlock? waited 460 sec for mutex '&iflock'? May 17 06:46:05 ERROR[8606]: ../include/asterisk/lock.h:239 __ast_pthread_mutex_lock: chan_sip.c line 11257 (do_monitor): '&iflock' was locked here. May 17 06:46:05 ERROR[8625]: include/asterisk/lock.h:236 __ast_pthread_mutex_lock: pbx.c line 2017 (ast_extension_state_del): Deadlock? waited 460 sec for mutex '&hintlock'? May 17 06:46:05 ERROR[8625]: include/asterisk/lock.h:239 __ast_pthread_mutex_lock: pbx.c line 1892 (ast_hint_state_changed): '&hintlock' was locked here. May 17 06:46:05 ERROR[8606]: ../include/asterisk/lock.h:236 __ast_pthread_mutex_lock: chan_sip.c line 3116 (sip_alloc): Deadlock? waited 460 sec for mutex '&iflock'? May 17 06:46:05 ERROR[8606]: ../include/asterisk/lock.h:239 __ast_pthread_mutex_lock: chan_sip.c line 11257 (do_monitor): '&iflock' was locked here. May 17 06:46:05 ERROR[8625]: include/asterisk/lock.h:236 __ast_pthread_mutex_lock: pbx.c line 2017 (ast_extension_state_del): Deadlock? waited 460 sec for mutex '&hintlock'? May 17 06:46:05 ERROR[8625]: include/asterisk/lock.h:239 __ast_pthread_mutex_lock: pbx.c line 1892 (ast_hint_state_changed): '&hintlock' was locked here. May 17 06:46:05 ERROR[8606]: ../include/asterisk/lock.h:236 __ast_pthread_mutex_lock: chan_sip.c line 3116 (sip_alloc): Deadlock? waited 460 sec for mutex '&iflock'? May 17 06:46:05 ERROR[8606]: ../include/asterisk/lock.h:239 __ast_pthread_mutex_lock: chan_sip.c line 11257 (do_monitor): '&iflock' was locked here.

This continues until someone stops asterisks and restarts it.

I googled around and found some asterisk deadlock problems but not refering to iflock or hintlock.

I glanced through the source looking for mutex_(un)locks iflock and found them in pairs, however sometimes some a screen page apart.

We dont use any hardware in the machine and the "partners" for the asterisk server are a couple of VoiP phones, a handful "sub" asterisk on other machines and a Cisco 5300 for the PSTN gateway.

Philosophy: Dont you want to get rid of the threads and therefore mutex-problems? I once wrote a sort-of-asterisk for NMS AG cards and used threads as well and saw similar problems, and since I rewrote the whole project to a single threaded event-state machine it never crashed or hung anymore aside from 0-strcpy-memory access :-) Second I remember that malloc() in 2 different threads (kernel 2.4.20) returned the same memory pointer - so I had to encapsulate malloc() with a mutex_lock/unlock too.

Any clues why this possible deadlock happens?

Regards
Philipp Ott

_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

Asterisk-Users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to