[Home]

Summary:ASTERISK-28862: res_musiconhold: Race condition between starting/stopping
Reporter:Joshua C. Colp (jcolp)Labels:
Date Opened:2020-04-29 11:13:24Date Closed:
Priority:MinorRegression?No
Status:Open/NewComponents:Resources/res_musiconhold
Versions:13.32.0 16.9.0 17.3.0 Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) softmix_unhold.txt
Description:Given a scenario where music on hold is started from one thread and it is stopped in another it is possible for music on hold to not actually be stopped, when it should be. The attached full log shows this happening.
Comments:By: Joshua C. Colp (jcolp) 2020-04-29 11:20:13.597-0500

Once fixed please remove the delay from the rest_api/bridges/softmix_unhold test.

By: Sean Bright (seanbright) 2020-09-18 15:22:16.294-0500

[For later reference|https://github.com/asterisk/asterisk/blob/17a878dd9945e1b395d5d93b2ad88303713e44cc/bridges/bridge_softmix.c#L485-L490]:

{noformat}
       if (ast_channel_hold_state(bridge_channel->chan) == AST_CONTROL_HOLD) {
               ast_debug(1, "Channel %s simulating UNHOLD for bridge softmix join.\n",
                       ast_channel_name(bridge_channel->chan));
               ast_indicate(bridge_channel->chan, AST_CONTROL_UNHOLD);
       }
{noformat}