Deadlock

Hello,

I am a trixbox user and need help in one of the critical error I am facing.
for the fix I posted this error on trixbox forum but didnt found any solution.

trixbox’s backbone is asterisk so I though of posting my errors on this forum.

the error is…

ERROR[12057] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 180 (ast_db_get): Deadlock? waited 5 sec for mutex ‘&dblock’?
ERROR[12057] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 224 (ast_db_del): ‘&dblock’ was locked here.
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 504 (ast_db_gettree): Deadlock? waited 5 sec for mutex ‘&dblock’?
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 153 (ast_db_put): ‘&dblock’ was locked here.
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 504 (ast_db_gettree): Deadlock? waited 10 sec for mutex ‘&dblock’?
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 153 (ast_db_put): ‘&dblock’ was locked here.
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 504 (ast_db_gettree): Deadlock? waited 15 sec for mutex ‘&dblock’?
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 153 (ast_db_put): ‘&dblock’ was locked here.
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 504 (ast_db_gettree): Deadlock? waited 20 sec for mutex ‘&dblock’?
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 153 (ast_db_put): ‘&dblock’ was locked here.
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 504 (ast_db_gettree): Deadlock? waited 25 sec for mutex ‘&dblock’?
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 153 (ast_db_put): ‘&dblock’ was locked here.
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 504 (ast_db_gettree): Deadlock? waited 30 sec for mutex ‘&dblock’?
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 153 (ast_db_put): ‘&dblock’ was locked here.
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 504 (ast_db_gettree): Deadlock? waited 35 sec for mutex ‘&dblock’?
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 153 (ast_db_put): ‘&dblock’ was locked here.
ERROR[12285] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 504 (ast_db_gettree): Deadlock? waited 40 sec for mutex ‘&dblock’?
ERROR[12057] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 180 (ast_db_get): Deadlock? waited 10 sec for mutex ‘&dblock’?
ERROR[12057] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 224 (ast_db_del): ‘&dblock’ was locked here.
ERROR[12063] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 504 (ast_db_gettree): Deadlock? waited 5 sec for mutex ‘&dblock’?
ERROR[12063] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 224 (ast_db_del): ‘&dblock’ was locked here.
ERROR[12057] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 180 (ast_db_get): Deadlock? waited 15 sec for mutex ‘&dblock’?
ERROR[12057] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 224 (ast_db_del): ‘&dblock’ was locked here.
ERROR[12063] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 504 (ast_db_gettree): Deadlock? waited 10 sec for mutex ‘&dblock’?
ERROR[12063] /usr/src/redhat/BUILD/asterisk16-1.6.0.26/include/asterisk/lock.h: db.c line 224 (ast_db_del): ‘&dblock’ was locked here.

Please advice for any possible solution.


Regards,
Nikhil Roshania.

1.6.0 has been fully end of life for some time now.

You are almost certainly going to have to recompile Asterisk (with thread debugging and no-optimisation compilation options) even to debug this on that version, and I don’t think that will be easy with a packaged system like that.

You basically need to run

core show locks

(needs first option) and get an unoptimised backtrace at the time the system is failing, to be able to work out what is wrong. That might give a small chance of working out an avoidance strategy and a better chance of finding a fix that can be back ported.