Added an apparmor task for its similarity to bug 1689585 but set it immediately to Won't Fix (as we did there). But having apparmor people getting notified might help with the continuation of this discussion.
-- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to apparmor in Ubuntu. https://bugs.launchpad.net/bugs/1806263 Title: MariaDB 10.1 server won't start when MySQL 5.7 server has been previously installed Status in apparmor package in Ubuntu: Won't Fix Status in mariadb-10.1 package in Ubuntu: New Status in mysql-5.7 package in Ubuntu: Won't Fix Bug description: If you purge MySQL 5.7 server, then install MariaDB 10.1, that last won't start due to wrong AppArmor profile. CURRENT RESULT ON mariadb-server-10.1 package installation ... Job for mariadb.service failed because a timeout was exceeded. See "systemctl status mariadb.service" and "journalctl -xe" for details. ... # LANG=C systemctl status mariadb * mariadb.service - MariaDB 10.1.34 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: failed (Result: timeout) since Sun 2018-12-02 17:26:09 UTC; 59s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 23245 (code=exited, status=0/SUCCESS) Dec 02 17:24:37 bionic systemd[1]: Starting MariaDB 10.1.34 database server... Dec 02 17:24:37 bionic mysqld[23245]: 2018-12-02 17:24:37 139820621216896 [Note] /usr/sbin/mysqld (mysqld 10.1.34-MariaDB-0ubuntu0.18.04.1) starting as process 23245 ... Dec 02 17:26:07 bionic systemd[1]: mariadb.service: Start operation timed out. Terminating. Dec 02 17:26:09 bionic systemd[1]: mariadb.service: Failed with result 'timeout'. Dec 02 17:26:09 bionic systemd[1]: Failed to start MariaDB 10.1.34 database server. EXPECTED RESULT MariaDB 10.1 server starting as expected. HOWTO REPRODUCE apt-get install mysql-server-5.7 mysql-client-5.7 apt-get purge mysql-server-5.7 mysql-client-5.7 apt-get install mariadb-server-10.1 mariadb-client-10.1 DISCUSSION The mysql-server-5.7 package install an /etc/apparmor.d/usr.sbin.mysqld APPARMOR(7) profile: # dpkg -S /etc/apparmor.d/usr.sbin.mysqld mysql-server-5.7: /etc/apparmor.d/usr.sbin.mysqld When purging the mysql-server-5.7 server package get purged, the /etc/apparmor.d/usr.sbin.mysqld profile is also removed but, it is still loaded: # aa-status | grep 'mysqld' /usr/sbin/mysqld This lead to MariaDB 1.0 server not being able to start due to MySQL 5.7 APPARMOR(7) profile that is still loaded. Furthermore, the mariadb-server-10.1 also comes with an APPARMOR(7) profile which as per it header comments is "intensionally empty to disable apparmor by default for newer versions of MariaDB". This is a big mistake as such a profile is simply wrong in regard of APPARMOR_PARSER(8) and as such, won't be unloaded: # apparmor_parser -v -R /etc/apparmor.d/usr.sbin.mysqld # aa-status | grep 'mysqld' /usr/sbin/mysqld while: # echo "/usr/sbin/mysqld { }" > /etc/apparmor.d/usr.sbin.mysqld # apparmor_parser -v -R /etc/apparmor.d/usr.sbin.mysqld Removal succeeded for "/usr/sbin/mysqld". # aa-status | grep 'mysqld' FIX PROPOSAL 1. When mysql-server-5.7 package is being removed/purged, the APPARMOR(7) profile should be unloaded and removed ranther than be simply removed. 2. The profile provided by the mariadb-server-10.1 package should have correct syntax in regard of APPARMOR_PARSER(8) 3. The mariadb-server-10.1 package postinst/postrm maintainer scripts should handle apparmor profile (load/unload) Env Ubuntu Bionic Beaver (18.04) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/1806263/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp