Upgrade to 5.5.36-rel34.1-642.squeeze silently changes my.cnf, breaks startup if change reverted
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS |
Fix Released
|
Undecided
|
Alexey Bychko | ||
5.5 |
Fix Released
|
Undecided
|
Alexey Bychko | ||
5.6 |
Fix Released
|
Undecided
|
Alexey Bychko |
Bug Description
Originally reported at http://
The upgrade to (at least) 5.5.36-
# TODO fixing my.cnf, prepending params with invalid paths with #
if [ -f /etc/mysql/my.cnf ]; then
sed -i -e ‘/^[^#]
fi
We were not prompted in typical Debian fashion about the change to this file during the upgrade.
The code above, commented out this value in our /etc/mysql/my.cnf:
language = /usr/share/
The upgrade appears to rename /usr/share/mysql to /usr/share/
Because this is silent, and that the change actually *fixes* the my.cnf, there is no indication of what has happened to the end user.
However, for anyone who might have a Puppet-managed my.cnf, as we do, this is disastrous. The next Puppet execution replaced the my.cnf with the original version and scheduled a refresh of the mysqld service. MySQL failed to start back up once the `language` value was back in the my.cnf. Comparing the change in Puppet's clientbucket was how I discovered that your package modified the my.cnf.
The issue was solved either by changing the value in the config, or (a quick fix for us rather than work out new logic in our my.cnf template for our mix of database servers running different versions), symlink /usr/share/mysql to the new directory /usr/share/
As a couple of recommendations:
1) Don't make this change silent. Why is the TODO there? Is there are better, more Debian way to diff the change and accept/be made aware of the modification. In 2014, direct silent modifications of a config file are probably risky, I can't be the only one to be templating my my.cnf in Puppet.
2) Mention this quite significant /usr/share/mysql rename in the release notes. Why was it not mentioned in http://
3) Perhaps maintain /usr/share/mysql as a symlink if you are going to move it, to avoid such surprises?
System was Debian 6.0.9, 64-bit, upgrading percona-
Let me know if I can provide any more information.
Related branches
- Laurynas Biveinis (community): Approve
-
Diff: 182 lines (+34/-18)8 files modifiedMakefile-ps (+1/-1)
VERSION (+1/-1)
build-ps/debian/control (+1/-2)
build-ps/debian/rules (+12/-8)
build-ps/percona-server.spec (+13/-0)
scripts/mysql_install_db.pl.in (+1/-1)
scripts/mysql_install_db.sh (+4/-4)
storage/innobase/include/univ.i (+1/-1)
- Laurynas Biveinis (community): Approve
-
Diff: 185 lines (+44/-18)8 files modifiedMakefile-ps (+1/-1)
VERSION (+1/-1)
build-ps/debian/control (+1/-1)
build-ps/debian/rules (+22/-8)
build-ps/percona-server.spec (+13/-1)
scripts/mysql_install_db.pl.in (+1/-1)
scripts/mysql_install_db.sh (+4/-4)
storage/innobase/include/univ.i (+1/-1)
Changed in percona-server: | |
assignee: | nobody → Alexey Bychko (abychko) |
tags: | added: pkg |
See also #1294211