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

Reply via email to