Backport sysupgrade patches preventing hangs on certain sysupgrade failures
This commit is contained in:
parent
0c9df0eb30
commit
74f43ab80f
@ -1,19 +1,21 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Sat, 8 Jul 2017 14:44:00 +0200
|
||||
Subject: procd: switch to master branch
|
||||
Subject: procd: switch to latest master
|
||||
|
||||
diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile
|
||||
index 70515958cd5002841fd9698b7a7f4aec01ddfb3b..cead3b9b7a5f83879a1aee08ab0463049dd228f4 100644
|
||||
index 70515958cd5002841fd9698b7a7f4aec01ddfb3b..2a1fed4e6e2388806ee4230af2872b4bcc8f1613 100644
|
||||
--- a/package/system/procd/Makefile
|
||||
+++ b/package/system/procd/Makefile
|
||||
@@ -13,8 +13,8 @@ PKG_RELEASE:=1
|
||||
@@ -12,9 +12,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(LEDE_GIT)/project/procd.git
|
||||
PKG_SOURCE_DATE:=2017-06-19
|
||||
-PKG_SOURCE_DATE:=2017-06-19
|
||||
-PKG_SOURCE_VERSION:=89918c8cb78e651ee0922f13a96b7f25fc2f285a
|
||||
-PKG_MIRROR_HASH:=fad1a37227f85070f6a49a37ea1e98c22c066c91f16ad26898152972eb0c6a91
|
||||
+PKG_SOURCE_VERSION:=453116e08e6a9349374bbff427b75f57ce5387c9
|
||||
+PKG_MIRROR_HASH:=a0d5c1ddbd2ba63d52125fa5a815d48a3bfb1b1e0a6b85f3335af8a873ed58fc
|
||||
+PKG_SOURCE_DATE:=2017-07-13
|
||||
+PKG_SOURCE_VERSION:=d749b2a3507517ff0fe39f7dac69f44ce20c56a2
|
||||
+PKG_MIRROR_HASH:=388c9f8ac28c922bb8f7889d5bfe11d9afd1bee96243bb5b77897dd1a13b3a43
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
@ -435,7 +435,7 @@ index 0000000000000000000000000000000000000000..6bd2005344c081df20e5a330a69e49e3
|
||||
+ nand_upgrade_stage1
|
||||
+}
|
||||
diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile
|
||||
index cead3b9b7a5f83879a1aee08ab0463049dd228f4..2a42db1fc034b554860393cfd9b17ed8423d7bc4 100644
|
||||
index 2a1fed4e6e2388806ee4230af2872b4bcc8f1613..ac0e525aed8f72b52cac892b360b3be1edcd7e1d 100644
|
||||
--- a/package/system/procd/Makefile
|
||||
+++ b/package/system/procd/Makefile
|
||||
@@ -22,11 +22,9 @@ PKG_LICENSE_FILES:=
|
||||
|
@ -0,0 +1,33 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Mon, 10 Jul 2017 10:35:19 +0200
|
||||
Subject: base-files: upgrade: correctly handle nand_do_upgrade argument passed from preupgrade
|
||||
|
||||
Fixes: 30f61a34b4cf "base-files: always use staged sysupgrade"
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh
|
||||
index fc59bf2323498d332159b00eb7ab443bfe6b147e..c8b71015c2e44210696a4e28a5b7babbd0233184 100644
|
||||
--- a/package/base-files/files/lib/upgrade/common.sh
|
||||
+++ b/package/base-files/files/lib/upgrade/common.sh
|
||||
@@ -211,7 +211,7 @@ default_do_upgrade() {
|
||||
do_upgrade_stage2() {
|
||||
v "Performing system upgrade..."
|
||||
if [ -n "$do_upgrade" ]; then
|
||||
- $do_upgrade "$IMAGE"
|
||||
+ eval "$do_upgrade"
|
||||
elif type 'platform_do_upgrade' >/dev/null 2>/dev/null; then
|
||||
platform_do_upgrade "$IMAGE"
|
||||
else
|
||||
diff --git a/package/base-files/files/lib/upgrade/nand.sh b/package/base-files/files/lib/upgrade/nand.sh
|
||||
index 1e69c8f9657b39adf2a2c33bd9bac9303bcbc3d7..72f0fe0e10312e74ce085ad53f0adceb921fd013 100644
|
||||
--- a/package/base-files/files/lib/upgrade/nand.sh
|
||||
+++ b/package/base-files/files/lib/upgrade/nand.sh
|
||||
@@ -289,7 +289,7 @@ nand_do_upgrade() {
|
||||
# hook; this piece of code handles scripts that haven't been
|
||||
# updated. All scripts should gradually move to call nand_do_upgrade
|
||||
# from platform_do_upgrade instead.
|
||||
- export do_upgrade=nand_do_upgrade
|
||||
+ export do_upgrade="nand_do_upgrade '$1'"
|
||||
return
|
||||
fi
|
||||
|
@ -0,0 +1,42 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Thu, 13 Jul 2017 00:19:32 +0200
|
||||
Subject: base-files: upgrade: don't loop forever trying to kill processes
|
||||
|
||||
When processes don't die on SIGKILL (usually because of kernel bugs), it's
|
||||
better to give up instead of looping forever.
|
||||
|
||||
upgraded will trigger a reboot in this case (and if this fails, a hardware
|
||||
watchdog will eventually time out and reset the system, if present).
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/package/base-files/files/lib/upgrade/stage2 b/package/base-files/files/lib/upgrade/stage2
|
||||
index bdbb8926643287f48a4ae62c5d1d4b4a29130859..097ad63adfecdd70019acaa5b652d2056e774c3f 100755
|
||||
--- a/package/base-files/files/lib/upgrade/stage2
|
||||
+++ b/package/base-files/files/lib/upgrade/stage2
|
||||
@@ -87,6 +87,8 @@ switch_to_ramfs() {
|
||||
}
|
||||
|
||||
kill_remaining() { # [ <signal> [ <loop> ] ]
|
||||
+ local loop_limit=10
|
||||
+
|
||||
local sig="${1:-TERM}"
|
||||
local loop="${2:-0}"
|
||||
local run=true
|
||||
@@ -117,8 +119,15 @@ kill_remaining() { # [ <signal> [ <loop> ] ]
|
||||
|
||||
[ $loop -eq 1 ] && run=true
|
||||
done
|
||||
+
|
||||
+ let loop_limit--
|
||||
+ [ $loop_limit -eq 0 ] && {
|
||||
+ echo
|
||||
+ echo "Failed to kill all processes."
|
||||
+ exit 1
|
||||
+ }
|
||||
done
|
||||
- echo ""
|
||||
+ echo
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user