[Asterisk-Dev] Deadlock ? app_queue / chan_agent

NRB nrb at dantronic-engineering.dk
Mon Feb 7 06:15:07 MST 2005


update:


Another incident: same symptomps - Queue seems to be dead until * is restarted

According til gdb dump2 (attached file), * is hanging in app_queue line 939

>From app_queue.c: 

static int update_queue(struct ast_call_queue *q, struct member *member)
{
 struct member *cur;
 /* Since a reload could have taken place, we have to traverse the list to
  be sure it's still valid */
 ast_mutex_lock(&q->lock);             <-----------------line 939
 cur = q->members;
 while(cur) {
  if (member == cur) {
   time(&cur->lastcall);
   cur->calls++;
   break;
  }
  cur = cur->next;
 }
 q->callscompleted++;
 ast_mutex_unlock(&q->lock);
 return 0;
}



I´ve tried to compile with the -DDEBUG_THREADS option (to be able to trace who isn't unlockin properly) but it does not seem go give me extra debugentries in the log - have I missed something?

By the way: what does this message fom gdb tell me?:
"Previous frame identical to this frame (corrupt stack?)"

/NRB
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dump2
Type: application/octet-stream
Size: 11064 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-dev/attachments/20050207/f6d145ba/dump2.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dump1.dat
Type: application/octet-stream
Size: 14934 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-dev/attachments/20050207/f6d145ba/dump1.obj


More information about the asterisk-dev mailing list