<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font face="Ubuntu">Hi,<br>
      <br>
    </font><font face="Ubuntu">Ok, so looking at the output you provided
      to me, DISPATCHER_IPS is empty after generating the final config
      from the templates.<br>
      <br>
      Could you please provide the whole section of cluster_sets in
      config.yml and from network.yml.<br>
      <br>
      It should look something like this:<br>
      <br>
      For config.yml:<br>
      cluster_sets:<br>
        default_set: default<br>
        sets:<br>
        - dispatcher_id: '50'<br>
          name: default<br>
        type: central<br>
      <br>
      For network.yml:<br>
          lo:<br>
            cluster_sets:<br>
            - default<br>
            eee: no<br>
            ip: 127.0.0.1<br>
            netmask: 255.255.255.0<br>
            shared_ip: []<br>
            shared_v6ip: []<br>
            type:<br>
            - sip_int<br>
            - ha_int<br>
            - aux_ext<br>
            - ssh_ext<br>
            - api_int<br>
            - rtp_int<br>
            - stor_int<br>
            v6_dad: no<br>
            v6ip: ::1<br>
            v6netmask: 128<br>
      <br>
      Best regards,<br>
      Jos Su<br>
      <br>
    </font>
    <div class="moz-cite-prefix">On 12/19/25 11:57, SPCE Newbie wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:20251219105714.06e04915@matrix">
      <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">&lt;spce-user@tel.co.uk&gt;</a>
To: Jose Antonio Su Ng <a class="moz-txt-link-rfc2396E" href="mailto:jsung@sipwise.com">&lt;jsung@sipwise.com&gt;</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


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 &lt;spce-user"@tel.co.uk
To: Jose Antonio Su Ng <a class="moz-txt-link-rfc2396E" href="mailto:jsung@sipwise.com">&lt;jsung@sipwise.com&gt;</a>
Cc: <a class="moz-txt-link-abbreviated" href="mailto:spce-user@lists.sipwise.com">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">&lt;jsung@sipwise.com&gt;</a>
To: SPCE Newbie <a class="moz-txt-link-rfc2396E" href="mailto:spce-user@tel.co.uk">&lt;spce-user@tel.co.uk&gt;</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">&lt;spce-user@tel.co.uk&gt;</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>
        <br>
        <fieldset class="moz-mime-attachment-header"></fieldset>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>