[Bug 1889472] Re: mysql-server-5.7 postinst fails when in read-only mode
1889472 at bugs.launchpad.net
Sat Apr 10 21:42:19 UTC 2021
Sorry, I must have missed your comment. A colleague pointed this bug out
to me last week. Do you still need this? Would it still be useful to
you, and would you still be able to drive SRU verification, etc? If so
let me know and I'll review.
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
mysql-server-5.7 postinst fails when in read-only mode
Status in mysql-5.7 source package in Xenial:
Status in mysql-5.7 source package in Bionic:
Updates of the mysql-server-5.7 package fail to install (error during postinst) if operating in (super) read-only mode.
A read-only replica is common in redundant/HA setups.
1) Setup a container (bionic or xenial would do)
$ lxc launch images:ubuntu/bionic sql1
$ lxc shell sql1
# apt-get update && apt-get install -y --no-install-recommends mysql-server
2) Configure read-only mode
# cat << EOF >> /etc/mysql/my.cnf
super_read_only = ON
read_only = ON
# service mysql restart
# mysql -e "SELECT @@global.read_only, @@global.super_read_only;"
| @@global.read_only | @@global.super_read_only |
| 1 | 1 |
3) Trigger the postinst code
# apt-get install --reinstall mysql-server-5.7
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 0 B/2,931 kB of archives.
After this operation, 0 B of additional disk space will be used.
Preconfiguring packages ...
(Reading database ... 16169 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.7_5.7.31-0ubuntu0.18.04.1_amd64.deb ...
Unpacking mysql-server-5.7 (5.7.31-0ubuntu0.18.04.1) over (5.7.31-0ubuntu0.18.04.1) ...
Setting up mysql-server-5.7 (5.7.31-0ubuntu0.18.04.1) ...
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
mysql_upgrade: [ERROR] 1290: The MySQL server is running with the --super-read-only option so it cannot execute this statement
mysql_upgrade failed with exit status 5
dpkg: error processing package mysql-server-5.7 (--configure):
installed mysql-server-5.7 package post-installation script subprocess returned error exit status 1
Processing triggers for systemd (237-3ubuntu10.41) ...
Errors were encountered while processing:
E: Sub-process /usr/bin/dpkg returned an error code (1)
Step 3) should not cause a dpkg error.
This patch runs a MySQL query to check if the service is in (super) read-only mode before calling mysql_upgrade. The SQL query might
fail thus preventing the proper detection of the read-only mode. The patch assumes read-write mode by default so that it would still
call mysql_upgrade. Fortunately, mysql_upgrade is known to safely error out when in read-only as this is what the bug is about.
Another possibility is to wrongly detect read-only mode which would skip running mysql_upgrade when it should have been. To mitigate
this, the patch informs the user ("mysql_upgrade skipped due to (super) read-only mode") who could then run mysql_upgrade manually.
If and when the patch lands in -proposed, I will update the test
instructions to indicate that -proposed needs to be enabled and mysql-
server-* should be upgraded instead of --reinstall'ed.
To manage notifications about this bug go to:
More information about the Ubuntu-sponsors