Summary: | ASTERISK-27012: app_confbridge: ConfBridge sometimes does not play user name recording while leaving | ||
Reporter: | Robert Mordec (veilen) | Labels: | |
Date Opened: | 2017-05-22 04:25:02 | Date Closed: | 2017-06-01 09:19:17 |
Priority: | Minor | Regression? | |
Status: | Closed/Complete | Components: | Applications/app_confbridge |
Versions: | 13.15.0 | Frequency of Occurrence | Occasional |
Related Issues: | |||
Environment: | Attachments: | ||
Description: | If confbridge is configured with *announce_join_leave* option set to _yes_, it records announcements with names of entering users and then plays them while users enter or leave the conference.
When user leaves a conference, its channel calls *async_play_sound_file()* function in order to play the name announcement and then unlinks the sound file with _ast_filedelete()_. The _async_play_sound_file()_ function adds a task to conference playback queue, which then runs _playback_common()_ function in a different thread. It leads to a race condition when in some cases the channel thread may unlink the sound file *before* _playback_common()_ had a chance to open it. If that is the case the announcement is not played and CLI contains two warnings: {quote} WARNING[18085]: file.c:774 ast_openstream_full: File /mnt/storage/asterisk/confbridge/confbridge-name-9200-1495182274.23064 does not exist in any format WARNING[18085]: file.c:1247 ast_streamfile: Unable to open /mnt/storage/asterisk/confbridge/confbridge-name-9200-1495182274.23064 (format (slin)): No such file or directory {quote} | ||
Comments: | By: Asterisk Team (asteriskteam) 2017-05-22 04:25:04.531-0500 Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution. A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report. Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process]. By: Robert Mordec (veilen) 2017-05-22 04:34:42.654-0500 It seems to me, that *ast_filedelete()* function should have its own task that could be added to conference playback queue. I'll see if I can create a feasible patch for this. By: Joshua C. Colp (jcolp) 2017-05-22 07:15:46.265-0500 [~veilen] Indeed, that seems like the correct solution. By: Friendly Automation (friendly-automation) 2017-06-01 09:19:18.147-0500 Change 5683 merged by Jenkins2: app_confbridge: Race between removing and playing name recording while leaving [https://gerrit.asterisk.org/5683|https://gerrit.asterisk.org/5683] By: Friendly Automation (friendly-automation) 2017-06-01 10:03:26.240-0500 Change 5684 merged by Joshua Colp: app_confbridge: Race between removing and playing name recording while leaving [https://gerrit.asterisk.org/5684|https://gerrit.asterisk.org/5684] By: Friendly Automation (friendly-automation) 2017-06-01 14:44:54.236-0500 Change 5685 merged by George Joseph: app_confbridge: Race between removing and playing name recording while leaving [https://gerrit.asterisk.org/5685|https://gerrit.asterisk.org/5685] |