|Summary:||ASTERISK-09128: unlock error in compare_weight|
|Reporter:||Peng Yong (ppyy)||Labels:|
|Date Opened:||2007-03-28 06:08:37||Date Closed:||2011-06-07 14:08:23|
|Description:||Mar 28 18:52:36 ERROR ../include/asterisk/lock.h: app_queue.c line 1547 (compare_weight): mutex '&qlock' freed more times than we've locked!|
Mar 28 18:52:36 ERROR ../include/asterisk/lock.h: app_queue.c line 1547 (compare_weight): Error releasing mutex: Operation not permitted
compare_weight is called by ring_entry, and ring_entry is called by ring_one.
/* &qlock and &rq->lock already set by try_calling()
* to solve deadlock */
but ring_one is not only called in try_calling, but also in someplace in wait_for_answer. qlock is not locked in wait_for_answer.
****** STEPS TO REPRODUCE ******
the error is caused by patch:
1.2 and 1.5 all have this error.
|Comments:||By: Serge Vecher (serge-v) 2007-03-28 08:45:25|
ppyy, you've reported enough issues to know that you need to be testing with the latest release (1.2.17)... ;)
By: Peng Yong (ppyy) 2007-03-28 08:52:04
serge-v, i check the code of branch 1.2, no difference.
and the error is in branch 1.2, 1.4 and trunk.
By: Joshua C. Colp (jcolp) 2007-06-11 09:51:00
I have tried to reproduce this exact codeflow but have been unable to under latest 1.2, I suspect either it was fixed or requires a specific configuration. Can you upload the queue configuration so I can try? Thanks.
By: Joshua C. Colp (jcolp) 2007-06-27 16:38:41
Suspending this until the needed configuration info can be provided as I was yet again unable to reproduce it.