Summary:ASTERISK-03618: App_queue/chan_agent blocks after redirect
Reporter:mhaigh (mhaigh)Labels:
Date Opened:2005-03-02 07:42:32.000-0600Date Closed:2011-06-07 14:00:31
Versions:Frequency of
Environment:Attachments:( 0) putty.txt
Description:ACD call is connected.  Redirect both channels to a MeetMe room (via Manager redirect command).  Once the agent hangs up,  app_queue is now blocking.  This seems to be fairly repeatable on my test system.  Attached is the output of "thread apply all bt" from gdb.
Comments:By: mhaigh (mhaigh) 2005-03-02 09:08:20.000-0600

Couple of things I forgot to mention.

In the redirect command I'm using the agent channel (Agent/1001) to redirect to the MeetMe, not the SIP (in my case) channel.

Also - at agent hangup, the console shows:

chan_agent.c line 697 (agent_hangup): Error releasing mutex: Operation not permitted

By: Mark Spencer (markster) 2005-03-02 15:14:48.000-0600

This doesn't have any kind of backtrace.  Did you send th ewrong file?

By: mhaigh (mhaigh) 2005-03-03 02:52:15.000-0600

Hmm - God knows how I managed that.   Proper backtrace attached now.  Backtrace is against Asterisk CVS-HEAD-03/02/05-16:43:36

edited on: 03-03-05 02:56

By: mhaigh (mhaigh) 2005-03-03 13:09:47.000-0600

Ok - it looks like when I issue the redirect, the thread that was looking after the agent channel (and holds the app_lock lock) is ending without releasing the lock.

When the agent leaves the conference I guess a new thread starts and tries to run agent_hangup and release the lock.  Since the new thread doesn't own the lock, the unlock fails.

By: Mark Spencer (markster) 2005-03-12 12:45:26.000-0600

Can you please test this on latest CVS and also if it is still a problem, please find me on IRC.  I will need to be able to login and poke around with gdb with the system *in the deadlocked state*.  Also, please compile with -DDEBUG_THREADS and do "make clean ; make valgrind ; make install".  Thanks!

By: Mark Spencer (markster) 2005-03-26 18:18:34.000-0600

Suspended due to inactivity.