control: severity -1 important

[2018-12-23 22:58] Adam Borowski <[email protected]>
> Uh oh...  looks like the logsave issue suddenly became RCish: it
> prevents lxc containers from booting unattended:
> [...]

I can propose following ad-hoc solution. Objections? Better suggestions?

diff --git a/debian/src/initscripts/etc/init.d/checkfs.sh 
b/debian/src/initscripts/etc/init.d/checkfs.sh
index 44ac67f3..13a10d10 100755
--- a/debian/src/initscripts/etc/init.d/checkfs.sh
+++ b/debian/src/initscripts/etc/init.d/checkfs.sh
@@ -91,7 +91,7 @@ Continuing with system boot in 5 seconds."
                if [ "$VERBOSE" = no ]
                then
                        log_action_begin_msg "Checking file systems"
-                       logsave -s $FSCK_LOGFILE fsck $spinner -M -A $fix 
$force $FSCKTYPES_OPT
+                       logsave_best_effort fsck $spinner -M -A $fix $force 
$FSCKTYPES_OPT
                        FSCKCODE=$?
 
                        if [ "$FSCKCODE" -eq 32 ]
@@ -112,7 +112,7 @@ Continuing with system boot in 5 seconds."
                        else
                                log_action_msg "Will now check all file systems"
                        fi
-                       logsave -s $FSCK_LOGFILE fsck $spinner -V -M -A $fix 
$force $FSCKTYPES_OPT
+                       logsave_best_effort fsck $spinner -V -M -A $fix $force 
$FSCKTYPES_OPT
                        FSCKCODE=$?
                        if [ "$FSCKCODE" -eq 32 ]
                        then
diff --git a/debian/src/initscripts/etc/init.d/checkroot.sh 
b/debian/src/initscripts/etc/init.d/checkroot.sh
index ba35e439..b29ac72d 100755
--- a/debian/src/initscripts/etc/init.d/checkroot.sh
+++ b/debian/src/initscripts/etc/init.d/checkroot.sh
@@ -231,7 +231,7 @@ Will restart in 5 seconds."
                if [ "$VERBOSE" = no ]
                then
                        log_action_begin_msg "Checking root file system"
-                       logsave -s $FSCK_LOGFILE fsck $spinner $force $fix -t 
$roottype $rootdev
+                       logsave_best_effort fsck $spinner $force $fix -t 
$roottype $rootdev
                        FSCKCODE=$?
                        if [ "$FSCKCODE" = 0 ]
                        then
@@ -241,7 +241,7 @@ Will restart in 5 seconds."
                        fi
                else
                        log_daemon_msg "Will now check root file system"
-                       logsave -s $FSCK_LOGFILE fsck $spinner $force $fix -V 
-t $roottype $rootdev
+                       logsave_best_effort fsck $spinner $force $fix -V -t 
$roottype $rootdev
                        FSCKCODE=$?
                        log_end_msg $FSCKCODE
                fi
diff --git a/debian/src/initscripts/lib/init/mount-functions.sh 
b/debian/src/initscripts/lib/init/mount-functions.sh
index e453f6a8..7511761c 100644
--- a/debian/src/initscripts/lib/init/mount-functions.sh
+++ b/debian/src/initscripts/lib/init/mount-functions.sh
@@ -706,3 +706,13 @@ is_fastboot_active() {
        done
        return 1
 }
+
+# This function does not actually belong here; it is duct-tape solution
+# for #901289.
+logsave_best_effort () {
+       if [ -x /sbin/logsave ] ; then
+               logsave -s "${FSCK_LOGFILE}" "$@"
+       else
+               "$@"
+       fi
+}

Reply via email to