← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1474212] Re: Upgrade fails when /var/lib/mysql is a soft link

 

** Changed in: mariadb-10.0 (Ubuntu)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1474212

Title:
  Upgrade fails when /var/lib/mysql is a soft link

Status in mariadb-10.0 package in Ubuntu:
  Fix Released
Status in mysql-5.7 package in Ubuntu:
  Fix Released
Status in mariadb-10.0 source package in Xenial:
  Confirmed
Status in mysql-5.7 source package in Xenial:
  Fix Released
Status in mariadb-10.0 package in Debian:
  Fix Released

Bug description:
  Upgrade fails if datadir is a symlink and the server has previously
  been upgraded with datadir as a symlink

  [Impact]
  When upgrading, postinst makes a copy (with -d) of the datadir link to ensure it's preserved. This copy operation can fail in some situations if the destination already exists (because the package was previously upgraded with a similar situation), causing d/preinst to fail every time the user tries to upgrade the package unless they manually remove the old link every time.

  The fix adds a -T to the copy operation, treating the destination as a
  regular file to be overwritten

  [Test case]
  * Create a /var/lib/mysql that is a symlink to some other location
  * Install an older version of mysql-server
  * Upgrade to a newer version of mysql-server

  [Regression potential]
  This change has been in Yakkety for some time (5.7.15-0ubuntu2).

  The change only affects user with datadirs that are symlinks, and only
  a file copy operation for a file that's generally not used (it's
  backed up just in case)

  [Original Description]
  Not sure if it's relevant, by my mariadb data dir is on a secondary hard drive. /var/lib/mysql-upgrade/DATADIR.link points to the right path.

  This is the terminal output for apt-get dist-upgrade:

  Selecting previously unselected package mariadb-server-10.0.
  (Reading database ... 274672 files and directories currently installed.)
  Preparing to unpack .../mariadb-server-10.0_10.0.20-0ubuntu0.15.04.1_amd64.deb ...
  cp: cannot overwrite directory ‘/var/lib/mysql-upgrade/DATADIR.link/mysql’ with non-directory
  dpkg: error processing archive /var/cache/apt/archives/mariadb-server-10.0_10.0.20-0ubuntu0.15.04.1_amd64.deb (--unpack):
   subprocess new pre-installation script returned error exit status 1
  + . /usr/share/debconf/confmodule
  ++ '[' '!' '' ']'
  ++ PERL_DL_NONLAZY=1
  ++ export PERL_DL_NONLAZY
  ++ '[' '' ']'
  ++ exec /usr/share/debconf/frontend /var/lib/dpkg/info/mariadb-server-10.0.postinst abort-upgrade 10.0.20-0ubuntu0.15.04.1
  + . /usr/share/debconf/confmodule
  ++ '[' '!' 1 ']'
  ++ '[' -z '' ']'
  ++ exec
  ++ '[' '' ']'
  ++ exec
  ++ DEBCONF_REDIR=1
  ++ export DEBCONF_REDIR
  + '[' -n '' ']'
  + export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin:/usr/sbin:/bin:/usr/bin
  + PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin:/usr/sbin:/bin:/usr/bin
  + ERR_LOGGER='logger -p daemon.err -t mysqld_safe -i'
  + set -o pipefail
  + MYSQL_BOOTSTRAP='/usr/sbin/mysqld --bootstrap --user=mysql --skip-grant-tables --default-storage-engine=myisam --plugin-load-add=auth_socket'
  + set +e
  + invoke stop
  + '[' -x /usr/sbin/invoke-rc.d ']'
  + invoke-rc.d mysql stop
  + set -e
  + case "$1" in
  + '[' abort-upgrade = configure ']'
  + db_stop
  + echo STOP
  + '[' -x /etc/init.d/mysql ']'
  + update-rc.d mysql defaults 19 21
  + '[' -x /etc/init.d/mysql ']'
  + echo 'Invoking mysql start'
  + logger -p daemon.err -t mysqld_safe -i
  + invoke-rc.d mysql start
  + exit 0
  Preparing to unpack .../mariadb-server_10.0.20-0ubuntu0.15.04.1_all.deb ...
  Unpacking mariadb-server (10.0.20-0ubuntu0.15.04.1) over (10.0.17-0ubuntu1) ...
  Errors were encountered while processing:
   /var/cache/apt/archives/mariadb-server-10.0_10.0.20-0ubuntu0.15.04.1_amd64.deb
  E: Sub-process /usr/bin/dpkg returned an error code (1)

  ProblemType: Package
  DistroRelease: Ubuntu 15.04
  Package: mariadb-server-10.0 10.0.17-0ubuntu1
  ProcVersionSignature: Ubuntu 3.19.0-22.22-generic 3.19.8-ckt1
  Uname: Linux 3.19.0-22-generic x86_64
  ApportVersion: 2.17.2-0ubuntu1.1
  Architecture: amd64
  Date: Tue Jul 14 08:07:15 2015
  DpkgTerminalLog:
   Preparing to unpack .../mariadb-server-10.0_10.0.20-0ubuntu0.15.04.1_amd64.deb ...
   cp: cannot overwrite directory ‘/var/lib/mysql-upgrade/DATADIR.link/mysql’ with non-directory
   dpkg: error processing archive /var/cache/apt/archives/mariadb-server-10.0_10.0.20-0ubuntu0.15.04.1_amd64.deb (--unpack):
    subprocess new pre-installation script returned error exit status 1
  DuplicateSignature: package:mariadb-server-10.0:10.0.17-0ubuntu1:subprocess new pre-installation script returned error exit status 1
  ErrorMessage: subprocess new pre-installation script returned error exit status 1
  InstallationDate: Installed on 2015-01-15 (180 days ago)
  InstallationMedia: Ubuntu 14.10 "Utopic Unicorn" - Release amd64 (20141022.1)
  RelatedPackageVersions:
   dpkg 1.17.25ubuntu1
   apt  1.0.9.7ubuntu4
  SourcePackage: mariadb-10.0
  Title: package mariadb-server-10.0 10.0.17-0ubuntu1 failed to install/upgrade: subprocess new pre-installation script returned error exit status 1
  UpgradeStatus: Upgraded to vivid on 2015-05-27 (47 days ago)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mariadb-10.0/+bug/1474212/+subscriptions