[kteam-tools][PATCH] git-build-kernel: add elapsed/load status as a keepalive
Kamal Mostafa
kamal at canonical.com
Tue Aug 6 22:14:05 UTC 2013
Long-running builds appear to hang, because when git-build-kernel emits no
output for a long time, TCP or ssh timeouts kick in and hang the underlying
git-ssh connection (the builds do not actually hang but the client-side
'git push' does).
To defeat such timeouts, keep the connection alive by printing an elapsed
time and load average display every 11 seconds.
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---
git-build-kernel/git-build-kernel | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/git-build-kernel/git-build-kernel b/git-build-kernel/git-build-kernel
index df01673..a62d00c 100755
--- a/git-build-kernel/git-build-kernel
+++ b/git-build-kernel/git-build-kernel
@@ -94,7 +94,8 @@ mkdir "$WORKDIR" || exit
BUILDDIR="$WORKDIR/build"
LOG="$WORKDIR/build.log"
-trap "rm -rf $BUILDDIR" 0
+touch "$WORKDIR/building"
+trap "rm -rf $WORKDIR/building $BUILDDIR" 0
[ $do_source_pkg = 1 ] && {
orig_tarball="linux_${VERSION%%-*}.orig.tar.gz"
@@ -116,6 +117,19 @@ echo " version: $DISTRO ($VERSION)"
echo " targets: $TARGETS"
echo " starting build in $HOSTNAME:$WORKDIR ..."
+function show_elapsed
+{
+ while [ -f $WORKDIR/building ]
+ do
+ loadavg="`uptime`"
+ loadavg="load${loadavg##*load}"
+ elapsed=`date --utc --date="@$SECONDS" +%H:%M:%S`
+ echo -n -e "\r elapsed: $elapsed $loadavg"
+ sleep 11
+ done
+}
+show_elapsed &
+
(
set -e
echo "+++gbk++++ git-build-kernel"
@@ -146,6 +160,8 @@ XXEOFXX
) > $LOG 2>&1
STATUS=$?
+rm -f "$WORKDIR/building"
+echo
### Output information about the build status and products
--
1.8.1.2
More information about the kernel-team
mailing list