Bug #86896 | dpkg: error processing package mysql-server (--configure) | ||
---|---|---|---|
Submitted: | 2 Jul 2017 12:03 | Modified: | 3 Jul 2017 7:47 |
Reporter: | Laurent C. | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Installing | Severity: | S2 (Serious) |
Version: | 5.7.18-0ubuntu0.16.04.1 | OS: | Ubuntu (16.04) |
Assigned to: | Lars Tangvald | CPU Architecture: | Any |
[2 Jul 2017 12:03]
Laurent C.
[3 Jul 2017 6:14]
Lars Tangvald
Hi, Looks like maybe your system changes the location of tmp files in a way the install can't handle correctly. Can you check if this is blocked by apparmor, by running: dmesg -T | grep mysql and looking for any "DENIED" messages (the command simply looks for "mysql" in your syslog)? Also run: mktemp -d and say what it outputs (this command creates a tmp directory).
[3 Jul 2017 6:18]
Lars Tangvald
Note: This is an issue with the native Ubuntu packages (named mysql-server-5.7, not mysql-community-server), but if this is a packaging bug it's likely to apply to our packages as well.
[3 Jul 2017 6:58]
Laurent C.
Hi, This does not seem to come from apparmor, all is allowed : Jul 3 08:40:49 lcdrappsdev01v kernel: [312811.534717] audit: type=1400 audit(1499064049.559:207): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=6892 comm="apparmor_parser" Jul 3 08:40:57 lcdrappsdev01v systemd[1]: Stopped MySQL Community Server. Jul 3 08:40:57 lcdrappsdev01v kernel: [312819.506198] audit: type=1400 audit(1499064057.531:213): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=6972 comm="apparmor_parser" Jul 3 08:40:57 lcdrappsdev01v kernel: [312819.531109] audit: type=1400 audit(1499064057.555:214): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/proc/6990/status" pid=6990 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 Jul 3 08:40:57 lcdrappsdev01v kernel: [312819.531155] audit: type=1400 audit(1499064057.555:215): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=6990 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 Jul 3 08:40:57 lcdrappsdev01v kernel: [312819.531178] audit: type=1400 audit(1499064057.555:216): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/node0/meminfo" pid=6990 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 Jul 3 08:40:57 lcdrappsdev01v kernel: [312819.531229] audit: type=1400 audit(1499064057.555:217): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/proc/6990/status" pid=6990 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=0 ouid=0 Jul 3 08:40:57 lcdrappsdev01v kernel: [312819.683033] audit: type=1400 audit(1499064057.707:218): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=7004 comm="apparmor_parser" Jul 3 08:40:58 lcdrappsdev01v systemd[1]: Starting MySQL Community Server... Jul 3 08:40:58 lcdrappsdev01v kernel: [312820.004978] audit: type=1400 audit(1499064058.031:219): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/proc/7067/status" pid=7067 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=111 ouid=111 Jul 3 08:40:58 lcdrappsdev01v kernel: [312820.005020] audit: type=1400 audit(1499064058.031:220): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=7067 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=111 ouid=0 Jul 3 08:40:58 lcdrappsdev01v kernel: [312820.005044] audit: type=1400 audit(1499064058.031:221): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/node0/meminfo" pid=7067 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=111 ouid=0 Jul 3 08:40:58 lcdrappsdev01v kernel: [312820.005090] audit: type=1400 audit(1499064058.031:222): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/proc/7067/status" pid=7067 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=111 ouid=111 Jul 3 08:40:59 lcdrappsdev01v systemd[1]: Started MySQL Community Server. Jul 3 08:40:59 lcdrappsdev01v systemd[1]: Stopping MySQL Community Server... Jul 3 08:41:00 lcdrappsdev01v systemd[1]: Stopped MySQL Community Server. Jul 3 08:41:05 lcdrappsdev01v systemd[1]: Starting MySQL Community Server... Jul 3 08:41:05 lcdrappsdev01v kernel: [312827.393299] audit: type=1400 audit(1499064065.419:227): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/proc/7271/status" pid=7271 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=111 ouid=111 Jul 3 08:41:05 lcdrappsdev01v kernel: [312827.393342] audit: type=1400 audit(1499064065.419:228): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/" pid=7271 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=111 ouid=0 Jul 3 08:41:05 lcdrappsdev01v kernel: [312827.393364] audit: type=1400 audit(1499064065.419:229): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/sys/devices/system/node/node0/meminfo" pid=7271 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=111 ouid=0 Jul 3 08:41:05 lcdrappsdev01v kernel: [312827.393412] audit: type=1400 audit(1499064065.419:230): apparmor="ALLOWED" operation="open" profile="/usr/sbin/mysqld" name="/proc/7271/status" pid=7271 comm="mysqld" requested_mask="r" denied_mask="r" fsuid=111 ouid=111 Jul 3 08:41:06 lcdrappsdev01v systemd[1]: Started MySQL Community Server. # mktemp -d /tmp/user/0/tmp.341mwoLDgn I have same error, on the second serveur with same version (ubuntu & mysql). I have set -x to /var/lib/dpkg/info/mysql-server-5.7.postinst, bellow last line from upgrade : + existingdatabase=1 + touch /var/lib/mysql/debian-5.7.flag + '[' configure = configure ']' + APP_PROFILE=/etc/apparmor.d/usr.sbin.mysqld + '[' -f /etc/apparmor.d/usr.sbin.mysqld ']' + LOCAL_APP_PROFILE=/etc/apparmor.d/local/usr.sbin.mysqld + test -e /etc/apparmor.d/local/usr.sbin.mysqld + aa-status --enabled + apparmor_parser -r -T -W /etc/apparmor.d/usr.sbin.mysqld + deb-systemd-helper unmask mysql.service + deb-systemd-helper --quiet was-enabled mysql.service + deb-systemd-helper enable mysql.service + '[' configure = configure ']' + '[' -x /etc/init.d/mysql ']' + update-rc.d mysql defaults 19 21 + '[' -x /etc/init.d/mysql '] + '[' -x /etc/init.d/mysql ']' + invoke-rc.d mysql start + '[' configure = configure ']' + '[' 1 = 1 ']' + test_sysmaint_access + mysql --defaults-file=/etc/mysql/debian.cnf + invoke stop + pathfind invoke-rc.d + OLDIFS=' ' + IFS=: + for p in '$PATH' + '[' -x /usr/local/sbin/invoke-rc.d ']' + for p in '$PATH' + '[' -x /usr/local/bin/invoke-rc.d ']' + for p in '$PATH' + '[' -x /usr/sbin/invoke-rc.d ']' + IFS=' ' + return 0 + invoke-rc.d mysql stop + set_mysql_pw debian-sys-maint **************** + set_mysql_pw_user=debian-sys-maint + set_mysql_pw_pass=**************** ++ mktemp --tmpdir=/var/lib/mysql-files/ + set_mysql_pw_passfile=/var/lib/mysql-files/tmp.8aRoaBl6Gu + chown mysql:mysql /var/lib/mysql-files/tmp.8aRoaBl6Gu + echo 'USE mysql;' + echo 'UPDATE user SET authentication_string=PASSWORD('\''****************'\'') WHERE user='\''debian-sys-maint'\'';' + echo 'FLUSH PRIVILEGES;' + echo 'SHUTDOWN;' + run_init_sql /var/lib/mysql-files/tmp.8aRoaBl6Gu ++ mktemp -d + tmpdir=/tmp/user/0/tmp.NHwIWD8RKi + chown mysql:mysql /tmp/user/0/tmp.NHwIWD8RKi + mysqld --user=mysql --init-file=/var/lib/mysql-files/tmp.8aRoaBl6Gu --socket=/tmp/user/0/tmp.NHwIWD8RKi/mysqld.sock --pid-file=/tmp/user/0/tmp.NHwIWD8RKi/mysqld.pid dpkg: error processing package mysql-server-5.7 (--configure): subprocess installed post-installation script returned error exit status 1 dpkg: dependency problems prevent configuration of mysql-server: mysql-server depends on mysql-server-5.7; however: Package mysql-server-5.7 is not configured yet. dpkg: error processing package mysql-server (--configure): dependency problems - leaving unconfigured Errors were encountered while processing: mysql-server-5.7 mysql-server E: Sub-process /usr/bin/dpkg returned an error code (1) I have truncated password from log for security :) owner seem right : drwx------ 2 mysql mysql 4096 Jul 3 08:48 tmp.NHwIWD8RKi
[3 Jul 2017 7:21]
Lars Tangvald
Maybe the mysql user isn't allow to enter /tmp/user/0 (I assume you have this set as TMPDIR on your system). i.e. if -x is set on tmp/user/0, mysql isn't allowed to touch tmp/user/0/dir/foo, even if it owns tmp/user/0/dir What are the modes for /tmp/user and /tmp/user/0?
[3 Jul 2017 7:47]
Laurent C.
Well done ! I did not think about it /tmp/user/0 not have write permissions, chmod 777 on this and apt-get install -f work fine now ! I think it comes from my setup, I close the ticket. Thanks for all
[3 Jul 2017 7:54]
Lars Tangvald
Great! Note that you shouldn't need write permission set for tmp/user/0, only the +x flag, so for example 755 instead of 777 -- Lars