X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=build%2Flmake;h=cb177a287dfbbecdf3c8750c60db59545488827a;hb=cfaf31a01d1e3023611130ec1f8ece073f0092b9;hp=34b03ebd0fdfdd09fd3b2477b259e6cafc088310;hpb=7e6d714c8b58465e8f946c37cc78b06077fee23c;p=fs%2Flustre-release.git diff --git a/build/lmake b/build/lmake index 34b03eb..cb177a2 100755 --- a/build/lmake +++ b/build/lmake @@ -351,11 +351,18 @@ timed_run() { ("$@") & child_pid=$! - sleep $SLEEP_TIME + (sleep $SLEEP_TIME kill -TERM -$child_pid 2>/dev/null sleep 5 kill -KILL -$child_pid 2>/dev/null - echo "$1 was killed due to timeout" + echo "$1 was killed due to timeout") & + dog_pid=$! + + wait $child_pid + # status will be set to 143 if the process had to be killed due to timeout + status=${PIPESTATUS[0]} + kill -KILL -$dog_pid + return $status } depend_kernel() @@ -374,12 +381,33 @@ depend_kernel() # use the expect script to "make oldconfig" and answer the questions for # new items conservatively. QA will get notified on anything newly added # for them to review and adjust accordingly. - timed_run 300 $TOPDIR/build/update_oldconfig + local logfile=$(mktemp /tmp/XXXXXX) + #timed_run 300 $TOPDIR/build/update_oldconfig $logfile + #local RC=${PIPESTATUS[0]} + #local RC=$(strace -f -o update_oldconfig.strace bash -c "$TOPDIR/build/update_oldconfig $logfile; echo \$?") + $TOPDIR/build/update_oldconfig $logfile + local RC=${PIPESTATUS[0]} + if [ $RC -eq 143 ]; then + fatal 1 "update_oldconfig timed out" + elif [ $RC -ne 0 ]; then + # dump the log + cat $logfile + rm -f $logfile + if [ -f update_oldconfig.strace ]; then + cat update_oldconfig.strace + rm -f update_oldconfig.strace + fi + fatal 1 "update_oldconfig failed: $RC. See log above." + fi + rm -f $logfile # now notify if resulting .config is different than $CONFIG_FILE local tmpfile=$(mktemp /tmp/XXXXXX) diff -I '^#.*' -u "$CONFIG_FILE" .config >$tmpfile if [ -s $tmpfile ]; then { cat <