[Home]

Summary:ASTERISK-20458: ConfBridge() dislplays many ERROR messages on console when loading invalid menu data
Reporter:Leif Madsen (lmadsen)Labels:
Date Opened:2012-09-21 07:15:59Date Closed:2012-10-01 11:17:27
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Applications/app_confbridge
Versions:11.0.0-beta2 Frequency of
Occurrence
Constant
Related
Issues:
Environment:Attachments:( 0) ASTERISK-20458.patch
Description:I am able to reproduce this fairly reliably. To get around it you need to unload the app_confbridge.so module, then load it back into memory after resolving the error in confbridge.conf.

This could ALMOST be classified as major, since unloading of the module after running into this could be difficult in production. I have made it minor though since there is a work around (however inconvenient).

Start with this in confbridge.conf:

{noformat}
[volume_ctrl_menu]
type=menu
*5=toggle_mute
1=increase_listening_volume
4=decrease_listening_volume
7=reset_listening_volume
3=increase_talking_volume
6=decrease_talking_volume
9=reset_talking_volume
{noformat}

* Now load app_confbridge.so in the Asterisk console. Everything loads clean.
* Go back to the confbridge.conf file and comment out the type=menu line.
* Perform:   module reload app_confbridge.so

You will get the following output:

{noformat}
 == Parsing '/etc/asterisk/confbridge.conf': Found
[Sep 21 07:13:35] ERROR[14791]: config_options.c:310 internal_aco_type_find: Required match field 'type' not found
[Sep 21 07:13:35] ERROR[14791]: config_options.c:359 process_category: Could not find config type for category 'volume_ctrl_menu' in 'confbridge.conf'
{noformat}

OK no problem so far. Go and fix the confbridge.conf file to remove the comment from the front of the type line.

Perform:  module reload app_confbridge.so

You will now get this in the console:

{noformat}

   -- Reloading module 'app_confbridge.so' (Conference Bridge Application)
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:152 link_option_to_types: Attempting to register option using uninitialized type
[Sep 21 07:15:09] ERROR[14804]: config_options.c:493 aco_process_config: Attempting to process uninitialized aco_info
{noformat}

No matter how many times you run the reload, you'll continue getting all the ERRORs on the console.
Comments:By: Mark Michelson (mmichelson) 2012-09-25 15:46:38.221-0500

I'm uploading ASTERISK-20458.patch for your consideration.

The problem turns out to be pretty simple. When app_confbridge is reloaded, and configuration process failed, it went into a mini-panic and destroyed its configuration objects. When trying to reload a second time, you got those error messages about using an uninitialized object (prior to the addition of those uninitialized checks, that would have actually crashed).

The fix is that when app_confbridge is being reloaded and has an error processing configuration, it should not panic. Instead, it should just stop what it's doing since the configuration API has maintained the previous configuration that was in use.

I tested this using the steps you outlined and found the volume_ctrl_menu to exist properly after each stage of reloading. Let me know if this works for you.

By: Leif Madsen (lmadsen) 2012-10-01 10:39:49.357-0500

Works for me too!