[Home]

Summary:ASTERISK-09992: Using dynamic realtime members of a queue can cause callers to wait forever
Reporter:Leif Madsen (lmadsen)Labels:
Date Opened:2007-07-31 13:34:59Date Closed:2007-08-27 17:25:02
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Applications/app_queue
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) 10346.patch
Description:If you have an empty Queue with joinempty=yes and leavewhenempty=no set and dynamic realtime queue members, callers will sit in queue forever even if a member logs into the queue. This appears to be because the code just checks the memory for members, and members of a queue are only read into memory when the Queue() application is first instantiated.

****** ADDITIONAL INFORMATION ******

Talking to Mark Michelson on IRC, and he said he will try and come up with a patch. Opening this bug so we don't forget about it.
Comments:By: Mark Michelson (mmichelson) 2007-07-31 15:12:00

I uploaded a patch. See if it fixes the problem for you.

By: Leif Madsen (lmadsen) 2007-08-01 08:14:16

Yep, this worked like a charm!

By: Digium Subversion (svnbot) 2007-08-01 08:42:39

Repository: asterisk
Revision: 77852

------------------------------------------------------------------------
r77852 | mmichelson | 2007-08-01 08:42:37 -0500 (Wed, 01 Aug 2007) | 7 lines

If a queue uses dynamic realtime members, then the member list should be updated after each attempt to call the queue.
This fixes an issue where if a caller calls into a queue where no one is logged in, they would wait forever even if a member
logged in at some point.

(closes issue ASTERISK-9992, reported by and tested by blitzrage, patched by me)


------------------------------------------------------------------------

By: Digium Subversion (svnbot) 2007-08-01 08:44:55

Repository: asterisk
Revision: 77853

------------------------------------------------------------------------
r77853 | mmichelson | 2007-08-01 08:44:55 -0500 (Wed, 01 Aug 2007) | 15 lines

Merged revisions 77852 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r77852 | mmichelson | 2007-08-01 08:59:59 -0500 (Wed, 01 Aug 2007) | 7 lines

If a queue uses dynamic realtime members, then the member list should be updated after each attempt to call the queue.
This fixes an issue where if a caller calls into a queue where no one is logged in, they would wait forever even if a member
logged in at some point.

(closes issue ASTERISK-9992, reported by and tested by blitzrage, patched by me)


........

------------------------------------------------------------------------

By: Mark Michelson (mmichelson) 2007-08-27 16:58:14

IRC user jontow has shown that there is a potential for a deadlock to occur as a result of this code.

This issue is reopened until the deadlock is resolved.

By: Mark Michelson (mmichelson) 2007-08-27 17:25:02

Deadlock has been fixed.