X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=build%2Flmake;h=f79541598c40b21b7eb6308f41d47c85a349e0b7;hp=34b03ebd0fdfdd09fd3b2477b259e6cafc088310;hb=4ecae3cd5af60e389eba1e6eff2913b09f557203;hpb=7e6d714c8b58465e8f946c37cc78b06077fee23c diff --git a/build/lmake b/build/lmake index 34b03eb..f795415 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,29 @@ 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 \$?") + if [ $RC -eq 143 ]; then + fatal 1 "update_oldconfig timed out" + elif [ $RC -ne 0 ]; then + # dump the log + cat $logfile + rm -f $logfile + cat update_oldconfig.strace + rm -f update_oldconfig.strace + 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 <