[Piuparts-commits] [piuparts] 01/10: try dpkg --configure --pending after failed db upgrade
Holger Levsen
holger at layer-acht.org
Sun Mar 5 14:55:38 UTC 2017
This is an automated email from the git hooks/post-receive script.
holger pushed a commit to branch develop
in repository piuparts.
commit 20c0fb7b82801e4a7d0907076fd2931a6cf27259
Author: Andreas Beckmann <anbe at debian.org>
Date: Thu Mar 2 17:04:51 2017 +0100
try dpkg --configure --pending after failed db upgrade
a recommended database may have been started too late,
i.e. only after a consumer tried to access it
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
---
.../scripts/pre_distupgrade_zz_database-server | 22 +++++++++++++++++-----
debian/changelog | 2 ++
2 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/custom-scripts/scripts/pre_distupgrade_zz_database-server b/custom-scripts/scripts/pre_distupgrade_zz_database-server
index 3cf160c..58c2dd9 100755
--- a/custom-scripts/scripts/pre_distupgrade_zz_database-server
+++ b/custom-scripts/scripts/pre_distupgrade_zz_database-server
@@ -1,6 +1,11 @@
#!/bin/sh
set -e
+# Skip while creating the reference chroot.
+if [ "$PIUPARTS_PHASE" = "" ]; then
+ exit 0
+fi
+
is_installed()
{
local pkg="$1"
@@ -11,10 +16,13 @@ is_installed()
return 0
}
-# Skip while creating the reference chroot.
-if [ "$PIUPARTS_PHASE" = "" ]; then
- exit 0
-fi
+retry_configure_pending()
+{
+ echo ""
+ echo "Upgrade didn't go smooth, trying dpkg --configure --pending"
+ dpkg --configure --pending
+}
+
CANDIDATES=
CANDIDATES="$CANDIDATES default-mysql-server"
@@ -42,6 +50,7 @@ esac
PACKAGES=
SWITCH_TO_MARIADB=
+RETRY="false"
# early upgrade runs into even more trouble for some packages ...
case ${PIUPARTS_OBJECTS%%=*} in
@@ -59,6 +68,9 @@ if [ "$PIUPARTS_DISTRIBUTION_NEXT" = "stretch" ]; then
bacula-director-mysql|\
bacula-director-mysql-dbg)
SWITCH_TO_MARIADB=yes
+ # (new) transitively recommended package mariadb-server-x.y gets
+ # configured (and the server started) too late (after ourselves)
+ RETRY="retry_configure_pending"
;;
bareos-database-mysql)
SWITCH_TO_MARIADB=yes
@@ -114,7 +126,7 @@ if [ -n "$PACKAGES" ]
then
echo "Upgrading ${PACKAGES# } early"
apt-get update
- apt-get -y install $PACKAGES
+ apt-get -y install $PACKAGES || $RETRY
fi
upgrade_pg_cluster()
diff --git a/debian/changelog b/debian/changelog
index b2353a0..a141bff 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,8 @@ piuparts (0.76) UNRELEASED; urgency=medium
* scripts/pre_distupgrade_zz_database-server: Switch from mysql-server to
default-mysql-server (aka mariadb-server) for selected packages on
upgrades to stretch, otherwise they will lose their database server.
+ Try 'dpkg --configure --pending' after failed upgrades in case the
+ database server was started too late - after a client tried to access it.
* scripts/pre_remove_40_find_missing_md5sums: Correctly escape backslashes
in filenames.
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/piuparts/piuparts.git
More information about the Piuparts-commits
mailing list