[Spce-user] [EXTERNAL] Re: mr13.5.1 to mr14.0.1 Upgrade Help

Jose Antonio Su Ng jsung at sipwise.com
Fri Dec 19 07:31:33 EST 2025


Hello,

You are confusing the 2 parameters, one is DISPATCHER_*IPS* and the 
other one is DISPATCHER_*IDS*.

In any case, the issue you are experiencing is due to the fact that 
DISPATCHER_IPS is missing and therefore fails because of that.
DISPATCHER_IPS gets populated by this:

   # lb
   argv.role = 'lb';
   argv.status = [ 'online' ];
   argv.type = 'sip_int';
   PROCESS '/usr/lib/ngcp-ngcpcfg/get_all_cluster_set_shared_ip_maps';
   UNLESS out.size;
     PROCESS '/usr/lib/ngcp-ngcpcfg/get_all_cluster_set_ip_maps';
   END;
   lb_ip_set = out;

   argv.type = 'lb';
   argv.status = [ 'online' ];
   PROCESS '/usr/lib/ngcp-ngcpcfg/get_all_cluster_sets';
   lb_dispatcher_set = out;

Could you try adding sip_int type to that lo interface and apply the 
change and then check if DISPATCHER_IPS is now populated.

Best regards,
Jose Su

On 12/19/25 13:18, SPCE Newbie wrote:
> Sure Jose,
>
> config.yml:
>
> cluster_sets:
>    default_set: default
>    sets:
>    - dispatcher_id: '50'
>      name: default
>    type: central
>
> network.yml:
>
>      lo:
>        cluster_sets:
>        - default
>        eee: no
>        ip: 127.0.0.1
>        netmask: 255.255.255.0
>        shared_ip: []
>        shared_v6ip: []
>        type:
>        - ha_int
>        - web_int
>        - aux_ext
>        - rtp_int
>        - stor_int
>        v6_dad: no
>        v6ip: ::1
>        v6netmask: 128
>
>
> sip_int, api_int and ssh_int are missing from mine.
>
> I don't think DISPATCHER_IPS is empty:-
>
> $ declare -A DISPATCHER_IDS="(
>     [default]=50
> )"
> $ echo $DISPATCHER_IDS
>
> it just appears empty, but if you do
>
> $ echo ${DISPATCHER_IDS[*]}
> 50
>
> E&OE
>
>
> ----- Original Message ----
> Date: Fri, 19 Dec 2025 13:08:00 +0100
> From: Jose Antonio Su Ng<jsung at sipwise.com>
> To: SPCE Newbie<spce-user at tel.co.uk>
> Cc:spce-user at lists.sipwise.com
> Subject: Re: [Spce-user] RE: [EXTERNAL] Re: mr13.5.1 to mr14.0.1
> Upgrade Help
>
>
> Hi,
>
> Ok, so looking at the output you provided to me, DISPATCHER_IPS is
> empty after generating the final config from the templates.
>
> Could you please provide the whole section of cluster_sets in
> config.yml and from network.yml.
>
> It should look something like this:
>
> For config.yml:
> cluster_sets:
>     default_set: default
>     sets:
>     - dispatcher_id: '50'
>       name: default
>     type: central
>
> For network.yml:
>       lo:
>         cluster_sets:
>         - default
>         eee: no
>         ip: 127.0.0.1
>         netmask: 255.255.255.0
>         shared_ip: []
>         shared_v6ip: []
>         type:
>         - sip_int
>         - ha_int
>         - aux_ext
>         - ssh_ext
>         - api_int
>         - rtp_int
>         - stor_int
>         v6_dad: no
>         v6ip: ::1
>         v6netmask: 128
>
> Best regards,
> Jos Su
>
> On 12/19/25 11:57, SPCE Newbie wrote:
>> Noone else has reported issues in updating, so apologies if it's self-
>> inflicted (but don't believe reckless or even 'ambitious' changes
>> made).
>>
>> Sorry rudely continuing to follow-up my own posts, but I found some
>> extended discussion of this online:-
>>
>> https://serverfault.com/questions/477503/check-if-array-is-empty-in-bash
>> https://stackoverflow.com/questions/65957633/check-if-array-is-empty-in-bash
>>
>> with many contributions but no summary.  However the general consensus
>> does appear to be that interpolation of an array into a string is the
>> way to go, but as, by default, shell values are space-separated, one
>> ought-to  collapse and restore (or at least, reset) afterward, e.g.:-
>>
>>     IFS=""
>>     if [[ -z "${var_value}[*]" ]] ; then
>>       die "Missing mandatory environment variable '\$${var_name}',
>>     exiting."
>>     fi
>>     IFS=" "
>>
>>
>> ----- Original Message -----
>> Date: Fri, 19 Dec 2025 10:28:25 +0000
>> From: SPCE Newbie<spce-user at tel.co.uk>
>> To: Jose Antonio Su Ng<jsung at sipwise.com>
>> Cc:spce-user at lists.sipwise.com
>> Subject: RE: [Spce-user] RE: [EXTERNAL] Re:  mr13.5.1 to mr14.0.1
>> Upgrade Help
>>
>>
>> Good morning Jose Su,
>>
>> I could be way off here, in which case apologies, but:
>>
>> The Bash function fatal_missing_var() is called on the following:
>>
>> fatal_missing_var ASTERISK_IPS		# Scalar
>> fatal_missing_var ASTERISK_PORT		# Scalar
>> fatal_missing_var RTPENGINE_IPS		# Scalar
>> fatal_missing_var RTPENGINE_HTTPPORT	# Scalar
>> fatal_missing_var DISPATCHER_IPS	# Composite
>> fatal_missing_var KAMAILIO_LB_PORT	# Scalar
>> fatal_missing_var KAMAILIO_PROXY_PORT	# Scalar
>> fatal_missing_var MGMT_SIP_IPS		# Scalar
>> fatal_missing_var MYSQL_HOST		# Scalar
>> fatal_missing_var MYSQL_PORT		# Scalar
>> fatal_missing_var NGCP_IS_DB		#
>> fatal_missing_var NGCP_TYPE		#
>> fatal_missing_var PROSODY_CTRLPORT	# Scalar
>> fatal_missing_var GENERALRPCADDR	# Scalar
>> fatal_missing_var PRXRPCADDR		# Scalar
>> fatal_missing_var SEMS_IPS		# Scalar
>> fatal_missing_var SEMS_PORT		# Scalar
>> fatal_missing_var SEMS_XMLRPCPORT	# Scalar
>> fatal_missing_var SEMS_SBC_PORT		# Scalar
>> fatal_missing_var SEMS_SBC_XMLRPCPORT	# Scalar
>> fatal_missing_var LB_IPS		#
>> fatal_missing_var FREESWITCH		# Scalar
>>
>> All the others are scalar so the test works, but not DISPATCHER_IPS
>> so it will bail on the fifth call.
>>
>> I can't test by editing it and replacing:-
>>
>>     if [[ -z "${var_value}" ]] ; then
>>       die "Missing mandatory environment variable '\$${var_name}',
>>     exiting."
>>     fi
>>
>> with:-
>>
>>     if [[ -z "${var_value}[*]" ]] ; then
>>       die "Missing mandatory environment variable '\$${var_name}',
>>     exiting."
>>     fi
>>
>> since the script is dynamically generated.
>>
>> However the modified test appears to be generalisable.
>>
>> Thanks in advance.
>>
>>
>> ----- Original Message -----
>> Date: Fri, 19 Dec 2025 09:30:55 +0000
>> From: "Newbie <spce-user"@tel.co.uk
>> To: Jose Antonio Su Ng<jsung at sipwise.com>
>> Cc:spce-user at lists.sipwise.com
>> Subject: [Spce-user] RE:: [EXTERNAL] Re:  mr13.5.1 to
>> mr14.0.1 Upgrade Help
>>
>>
>> Good morning Jose Su,
>>
>> # grep "cluster_set" /etc/ngcp-config/*yml
>> /etc/ngcp-config/config.yml:cluster_sets:
>> /etc/ngcp-config/network.yml:      cluster_sets:
>>
>>
>> # cd /etc/ngcp-provisioning-tools
>> # grep -A2 "DISPATCHER" * mysql_values.cfg:DISPATCHER_IPS=""
>> mysql_values.cfg:declare -A DISPATCHER_IDS=(
>> mysql_values.cfg-  [default]=50
>> mysql_values.cfg-)
>> --
>> mysql_values.cfg_2025-12-18_1324:DISPATCHER_IPS=""
>> mysql_values.cfg_2025-12-18_1324:declare -A DISPATCHER_IDS=(
>> mysql_values.cfg_2025-12-18_1324-  [default]=50
>> mysql_values.cfg_2025-12-18_1324-)
>>
>>
>> # diff mysql_values.cfg_2025-12-18_1324 mysql_values.cfg
>> #
>>
>> In the spirit of self-help, the mysql_values.cfg_2025-12-18_1324 file
>> was an attempt to test whether it was quoting that was causing the
>> problem.  It was not so reverted, hence that file is same as distro.
>>
>> Thank you.
>>
>> ----- Original Message -----
>> Date: Fri, 19 Dec 2025 10:02:49 +0100
>> From: Jose Antonio Su Ng<jsung at sipwise.com>
>> To: SPCE Newbie<spce-user at tel.co.uk>,spce-user at lists.sipwise.com
>> Subject: Re: [EXTERNAL] Re: [Spce-user] mr13.5.1 to mr14.0.1 Upgrade
>> Help
>>
>>
>> Hi,
>>
>> Could you share the output of these?
>>
>> grep "cluster_set" /etc/ngcp-config/*yml
>>
>> grep -A2 "DISPATCHER" /etc/ngcp-provisioning-tools/*
>>
>> Best regards,
>> Jose Su
>>
>> On 12/18/25 14:57, SPCE Newbie wrote:
>>> It's rude to follow-up one's own post, so sorry.  I found this:
>>>
>>> /etc/ngcp-config/templates/etc/ngcp-provisioning-tools/mysql_values.cfg.services
>>>
>>> initialises DISPATCHER_IPS to an associative array
>>>
>>> $ echo ${DISPATCHER_IDS[*]}
>>> 50
>>>
>>> But the missing mandatory environment variable test in
>>>
>>> /usr/share/ngcp-upgrade/steps/mr9.0/update_mysql_values
>>>
>>> appears equivalent to:
>>>
>>> $ if [[ -z "${DISPATCHER_IDS}" ]]; then echo zero; else echo
>>> non-zero; fi
>>> zero
>>>
>>> so would always fail.  Anyone successfully upgraded?
>>>
>>>
>>> ----- Original Message -----
>>> Date: Thu, 18 Dec 2025 13:02:47 +0000
>>> From: SPCE Newbie<spce-user at tel.co.uk>
>>> To:spce-user at lists.sipwise.com
>>> Subject: [Spce-user] mr13.5.1 to mr14.0.1 Upgrade Help
>>>
>>>
>>> Hi fellow spc-users,
>>>
>>> 1.  Expected Behaviour
>>>
>>> After reboot, ngcp-upgrade --target mr14.0.1 completes successfully.
>>>
>>>
>>> 2.  Observed Behaviour
>>>
>>> # ngcp-upgrade --target mr14.0.1
>>> ...
>>> 2025-12-18 13:54:09: [57/63] 'spce' Running:
>>> /usr/share/ngcp-upgrade/steps/mr9.0/update_mysql_values ERROR:
>>> Missing mandatory environment variable '$DISPATCHER_IPS', exiting.
>>> ERROR: the step 'mr9.0/update_mysql_values' failed, upgrade aborted!
>>> Please fix the root of the issue and restart 'ngcp-upgrade' (see
>>> error details in log file
>>> /ngcp-data/ngcp-upgrade/mr13.5.1-mr14.0.1/logs/ngcp-upgrade-mr13.5.1-mr14.0.1-1766062443.log
>>> ).
>>>
>>>
>>> 3.  Attempted Resolution
>>>
>>> # source /etc/profile.d/ngcp-bash.sh
>>> In case of local profile/bashrc customisation, then re-ran.
>>>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sipwise.com/pipermail/spce-user_lists.sipwise.com/attachments/20251219/ad0d7f72/attachment.htm>


More information about the Spce-user mailing list