[MySQL][VM] Canno refresh 8.0/stable to 8.0/candidate: Can't open shared library '/snap/charmed-mysql/103/usr/lib/mysql/plugin/audit_log.so' (errno: 22

Description

Hi,

Issue: the mysql vm charm refresh failing IF user forget pre-upgrade-check action:

unit-db1-1: 11:12:12 ERROR unit.db1/1.juju-log Failed to install plugin='audit_log' Traceback (most recent call last): File "/var/lib/juju/agents/unit-db1-1/charm/src/mysql_vm_helpers.py", line 750, in _run_mysqlcli_script return subprocess.check_output( File "/usr/lib/python3.10/subprocess.py", line 421, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, File "/usr/lib/python3.10/subprocess.py", line 526, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['charmed-mysql.mysql', '-u', 'serverconfig', '--protocol=SOCKET', '--socket=/var/snap/charmed-mysql/common/var/run/mysqld/mysqld.sock', '-e', "SET GLOBAL super_read_only=OFF; INSTALL PLUGIN audit_log SONAME 'audit_log.so';SET GLOBAL super_read_only=ON;", '--password=uhod5AVCGwcN8amwMygrosRA']' returned non-zero exit status 1. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/var/lib/juju/agents/unit-db1-1/charm/lib/charms/mysql/v0/mysql.py", line 1066, in install_plugins self._run_mysqlcli_script( File "/var/lib/juju/agents/unit-db1-1/charm/lib/charms/tempo_k8s/v1/charm_tracing.py", line 735, in wrapped_function return callable(*args, **kwargs) # type: ignore File "/var/lib/juju/agents/unit-db1-1/charm/src/mysql_vm_helpers.py", line 754, in _run_mysqlcli_script raise MySQLClientError(self.strip_off_passwords(e.stderr.decode("utf-8"))) charms.mysql.v0.mysql.MySQLClientError: mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 1126 (HY000) at line 1: Can't open shared library '/snap/charmed-mysql/103/usr/lib/mysql/plugin/audit_log.so' (errno: 22 /snap/charmed-mysql/103/usr/lib/mysql/plugin/audit_log.so: cannot open shared object file: No such file or directory)

It looks like we are trying to install the plugin on not-yet-refreshed snap (no lib there yet)

STR:

juju deploy mysql # 8.0/stable rev 240 juju wait-for application mysql juju refresh --channel 8.0/candidate

In log you will see:

unit-db1-1: 11:12:08 INFO juju.worker.uniter found queued "upgrade-charm" hook unit-db1-0: 11:12:09 INFO juju.worker.uniter found queued "upgrade-charm" hook unit-db1-1: 11:12:10 DEBUG unit.db1/1.juju-log ops 2.15.0 up and running. unit-db1-1: 11:12:10 INFO unit.db1/1.juju-log Running legacy hooks/upgrade-charm. unit-db1-1: 11:12:10 DEBUG unit.db1/1.juju-log ops 2.15.0 up and running. unit-db1-1: 11:12:10 DEBUG unit.db1/1.juju-log Charm called itself via hooks/upgrade-charm. unit-db1-1: 11:12:10 DEBUG unit.db1/1.juju-log Legacy hooks/upgrade-charm exited with status 0. unit-db1-1: 11:12:11 DEBUG unit.db1/1.juju-log no relation on 'tracing': tracing not ready unit-db1-1: 11:12:11 DEBUG unit.db1/1.juju-log Emitting Juju event upgrade_charm. unit-db1-0: 11:12:11 DEBUG unit.db1/0.juju-log ops 2.15.0 up and running. unit-db1-1: 11:12:11 ERROR unit.db1/1.juju-log Cluster upgrade failed, ensure pre-upgrade checks are ran first. unit-db1-0: 11:12:11 INFO unit.db1/0.juju-log Running legacy hooks/upgrade-charm. unit-db1-1: 11:12:11 INFO juju.worker.uniter.operation ran "upgrade-charm" hook (via hook dispatching script: dispatch) unit-db1-1: 11:12:11 INFO juju.worker.uniter found queued "config-changed" hook unit-db1-0: 11:12:11 DEBUG unit.db1/0.juju-log ops 2.15.0 up and running. unit-db1-0: 11:12:11 DEBUG unit.db1/0.juju-log Charm called itself via hooks/upgrade-charm. unit-db1-0: 11:12:11 DEBUG unit.db1/0.juju-log Legacy hooks/upgrade-charm exited with status 0. unit-db1-0: 11:12:11 DEBUG unit.db1/0.juju-log no relation on 'tracing': tracing not ready unit-db1-0: 11:12:11 DEBUG unit.db1/0.juju-log Emitting Juju event upgrade_charm. unit-db1-0: 11:12:11 ERROR unit.db1/0.juju-log Cluster upgrade failed, ensure pre-upgrade checks are ran first. unit-db1-1: 11:12:11 DEBUG unit.db1/1.juju-log ops 2.15.0 up and running. unit-db1-1: 11:12:11 DEBUG unit.db1/1.juju-log no relation on 'tracing': tracing not ready unit-db1-1: 11:12:11 DEBUG unit.db1/1.juju-log Emitting Juju event config_changed. unit-db1-1: 11:12:11 INFO unit.db1/1.juju-log Persisting configuration changes to file unit-db1-1: 11:12:11 INFO unit.db1/1.juju-log Configuration change requires restart unit-db1-0: 11:12:11 INFO juju.worker.uniter.operation ran "upgrade-charm" hook (via hook dispatching script: dispatch) unit-db1-0: 11:12:11 INFO juju.worker.uniter found queued "config-changed" hook unit-db1-0: 11:12:12 DEBUG unit.db1/0.juju-log ops 2.15.0 up and running. unit-db1-0: 11:12:12 DEBUG unit.db1/0.juju-log no relation on 'tracing': tracing not ready unit-db1-0: 11:12:12 DEBUG unit.db1/0.juju-log Emitting Juju event config_changed. unit-db1-0: 11:12:12 INFO unit.db1/0.juju-log Persisting configuration changes to file unit-db1-0: 11:12:12 INFO unit.db1/0.juju-log Configuration change requires restart unit-db1-1: 11:12:12 INFO unit.db1/1.juju-log Installing plugin='audit_log' unit-db1-1: 11:12:12 ERROR unit.db1/1.juju-log Failed to install plugin='audit_log' Traceback (most recent call last): File "/var/lib/juju/agents/unit-db1-1/charm/src/mysql_vm_helpers.py", line 750, in _run_mysqlcli_script

So, SNAP refresh has failed, but we are still trying to enable plugin. Should we check the snap revision (lib availability before using it?).

IMPORTANT: please make sure no passwords dumped in the juju debug-log! re: `SET GLOBAL super_read_only=ON;", '--password=uhod5AVCGwcN8amwMygrosRA']' returned non-zero exit status 1.

P.S. reported by

Acceptance Criteria

None

Activity

Show:
Done
Pinned fields
Click on the next to a field label to start pinning.

Details

Priority

Assignee

Reporter

Components

Sprint

More fields

Created September 23, 2024 at 9:21 AM
Updated September 26, 2024 at 8:37 PM
Resolved September 26, 2024 at 8:37 PM