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:59 | Date Closed: | 2007-08-27 17:25:02 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | 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. |