<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<font face="Ubuntu">Hello,<br>
<br>
You are confusing the 2 parameters, one is DISPATCHER_<b>IPS</b>
and the other one is DISPATCHER_<b>IDS</b>. <br>
<br>
In any case, the issue you are experiencing is due to the fact
that DISPATCHER_IPS is missing and therefore fails because of
that.<br>
DISPATCHER_IPS gets populated by this:<br>
<br>
# lb<br>
argv.role = 'lb';<br>
argv.status = [ 'online' ];<br>
argv.type = 'sip_int';<br>
PROCESS
'/usr/lib/ngcp-ngcpcfg/get_all_cluster_set_shared_ip_maps';<br>
UNLESS out.size;<br>
PROCESS '/usr/lib/ngcp-ngcpcfg/get_all_cluster_set_ip_maps';<br>
END;<br>
lb_ip_set = out;<br>
<br>
argv.type = 'lb';<br>
argv.status = [ 'online' ];<br>
PROCESS '/usr/lib/ngcp-ngcpcfg/get_all_cluster_sets';<br>
lb_dispatcher_set = out;<br>
<br>
Could you try adding sip_int type to that lo interface and apply
the change and then check if DISPATCHER_IPS is now populated.<br>
<br>
Best regards,<br>
Jose Su<br>
<br>
</font>
<div class="moz-cite-prefix">On 12/19/25 13:18, SPCE Newbie wrote:<br>
</div>
<blockquote type="cite" cite="mid:20251219121819.1bdac277@matrix">
<pre wrap="" class="moz-quote-pre">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 <a class="moz-txt-link-rfc2396E" href="mailto:jsung@sipwise.com"><jsung@sipwise.com></a>
To: SPCE Newbie <a class="moz-txt-link-rfc2396E" href="mailto:spce-user@tel.co.uk"><spce-user@tel.co.uk></a>
Cc: <a class="moz-txt-link-abbreviated" href="mailto:spce-user@lists.sipwise.com">spce-user@lists.sipwise.com</a>
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:
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">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:-
<a class="moz-txt-link-freetext" href="https://serverfault.com/questions/477503/check-if-array-is-empty-in-bash">https://serverfault.com/questions/477503/check-if-array-is-empty-in-bash</a>
<a class="moz-txt-link-freetext" href="https://stackoverflow.com/questions/65957633/check-if-array-is-empty-in-bash">https://stackoverflow.com/questions/65957633/check-if-array-is-empty-in-bash</a>
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<a class="moz-txt-link-rfc2396E" href="mailto:spce-user@tel.co.uk"><spce-user@tel.co.uk></a>
To: Jose Antonio Su Ng<a class="moz-txt-link-rfc2396E" href="mailto:jsung@sipwise.com"><jsung@sipwise.com></a>
<a class="moz-txt-link-abbreviated" href="mailto:Cc:spce-user@lists.sipwise.com">Cc:spce-user@lists.sipwise.com</a>
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<a class="moz-txt-link-rfc2396E" href="mailto:jsung@sipwise.com"><jsung@sipwise.com></a>
<a class="moz-txt-link-abbreviated" href="mailto:Cc:spce-user@lists.sipwise.com">Cc:spce-user@lists.sipwise.com</a>
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<a class="moz-txt-link-rfc2396E" href="mailto:jsung@sipwise.com"><jsung@sipwise.com></a>
To: SPCE Newbie<a class="moz-txt-link-rfc2396E" href="mailto:spce-user@tel.co.uk"><spce-user@tel.co.uk></a>,<a class="moz-txt-link-abbreviated" href="mailto:spce-user@lists.sipwise.com">spce-user@lists.sipwise.com</a>
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:
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">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<a class="moz-txt-link-rfc2396E" href="mailto:spce-user@tel.co.uk"><spce-user@tel.co.uk></a>
<a class="moz-txt-link-abbreviated" href="mailto:To:spce-user@lists.sipwise.com">To:spce-user@lists.sipwise.com</a>
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.
</pre>
</blockquote>
</blockquote>
</blockquote>
<br>
</body>
</html>