[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