The upgrade from latest/edge to 8.0/stable is failing, I experienced that in a customer environment. The current revisions for the channels are:
latest/edge: rev 108
8.0/stable: rev 111
I would expect the rev 108 -> rev 111 upgrade path working. The charm had been upgraded was initiated with the following command:
```
$ juju refresh --switch mysql-router --channel 8.0/stable keystone-mysql-router --force-units
```
The upgrade is failing with the following stack trace in charm logs:
```
unit-keystone-mysql-router-1: 16:16:00 INFO unit.keystone-mysql-router/1.juju-log Invoking reactive handler: reactive/layer_openstack.py:46:default_upgrade_charm
unit-keystone-mysql-router-1: 16:16:00 INFO unit.keystone-mysql-router/1.juju-log Invoking reactive handler: reactive/mysql_router_handlers.py:18:db_router_request
unit-keystone-mysql-router-1: 16:16:00 ERROR unit.keystone-mysql-router/1.juju-log Hook error:
Traceback (most recent call last):
File "/var/lib/juju/agents/unit-keystone-mysql-router-1/.venv/lib/python3.10/site-packages/charms/reactive/__init__.py", line 74, in main
bus.dispatch(restricted=restricted_mode)
File "/var/lib/juju/agents/unit-keystone-mysql-router-1/.venv/lib/python3.10/site-packages/charms/reactive/bus.py", line 390, in dispatch
_invoke(other_handlers)
File "/var/lib/juju/agents/unit-keystone-mysql-router-1/.venv/lib/python3.10/site-packages/charms/reactive/bus.py", line 359, in _invoke
handler.invoke()
File "/var/lib/juju/agents/unit-keystone-mysql-router-1/.venv/lib/python3.10/site-packages/charms/reactive/bus.py", line 181, in invoke
self._action(*args)
TypeError: db_router_request() missing 1 required positional argument: 'db_router'
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm Traceback (most recent call last):
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm File "/var/lib/juju/agents/unit-keystone-mysql-router-1/charm/hooks/upgrade-charm", line 22, in <module>
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm main()
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm File "/var/lib/juju/agents/unit-keystone-mysql-router-1/.venv/lib/python3.10/site-packages/charms/reactive/__init__.py", line 74, in main
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm bus.dispatch(restricted=restricted_mode)
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm File "/var/lib/juju/agents/unit-keystone-mysql-router-1/.venv/lib/python3.10/site-packages/charms/reactive/bus.py", line 390, in dispatch
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm _invoke(other_handlers)
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm File "/var/lib/juju/agents/unit-keystone-mysql-router-1/.venv/lib/python3.10/site-packages/charms/reactive/bus.py", line 359, in _invoke
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm handler.invoke()
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm File "/var/lib/juju/agents/unit-keystone-mysql-router-1/.venv/lib/python3.10/site-packages/charms/reactive/bus.py", line 181, in invoke
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm self._action(*args)
unit-keystone-mysql-router-1: 16:16:00 WARNING unit.keystone-mysql-router/1.upgrade-charm TypeError: db_router_request() missing 1 required positional argument: 'db_router'
unit-keystone-mysql-router-1: 16:16:00 ERROR juju.worker.uniter.operation hook "upgrade-charm" (via explicit, bespoke hook script) failed: exit status 1
unit-keystone-mysql-router-1: 16:16:00 INFO juju.worker.uniter awaiting error resolution for "upgrade-charm" hook
unit-keystone-mysql-router-1: 16:16:01 INFO juju.worker.uniter awaiting error resolution for "upgrade-charm" hook
unit-keystone-mysql-router-1: 16:16:06 INFO juju.worker.uniter awaiting error resolution for "upgrade-charm" hook
```
The upgrade failure is reproducible with the following very simple bundle (deployed with juju 3.1.5):
```
series: jammy
machines:
"1":
constraints: tags=foundation-nodes,compute
"2":
constraints: tags=foundation-nodes,compute
"3":
constraints: tags=foundation-nodes,compute
applications:
hacluster-keystone:
charm: hacluster
channel: 2.4/stable
revision: 131
options:
cluster_count: 3
bindings:
"": oam-space
keystone:
charm: keystone
channel: yoga/stable
revision: 669
num_units: 3
to:
- lxd:1
- lxd:2
- lxd:3
options:
openstack-origin: distro
preferred-api-version: 3
region: RegionOne
token-expiration: 86400
vip: 172.27.52.29
bindings:
"": oam-space
mysql-innodb-cluster:
charm: mysql-innodb-cluster
channel: 8.0/stable
revision: 107
num_units: 3
to:
- lxd:1
- lxd:2
- lxd:3
options:
enable-binlogs: true
innodb-buffer-pool-size: 8G
max-connections: 4000
wait-timeout: 3600
bindings:
"": oam-space
keystone-mysql-router:
charm: mysql-router
channel: latest/edge
revision: 108
bindings:
"": oam-space
relations:
- [ "keystone-mysql-router:shared-db", "keystone:shared-db" ]
- [ "mysql-innodb-cluster:db-router", "keystone-mysql-router:db-router" ]
- [ "hacluster-keystone:ha", "keystone:ha" ]
```
> latest/edge: rev 108
> 8.0/stable: rev 111
> I would expect the rev 108 -> rev 111 upgrade path working. The charm had been upgraded was initiated with the following command:
That's actually a downgrade. latest/edge is a different version of the charm to 8.0/stable, and is 'more recent' in terms of software.
May I ask why you were changing from latest/edge to 8.0/stable?