[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:33:21 EST 2025


Add the same time, could you add the other 2 types? api_int and ssh_int.

Best regards,
Jose Su

On 12/19/25 13:31, Jose Antonio Su Ng wrote:
> 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/04e564c9/attachment-0001.htm>


More information about the Spce-user mailing list