[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