Whamcloud - gitweb
Disable the stracing of update_oldconfig.
[fs/lustre-release.git] / build / lmake
index 34b03eb..cb177a2 100755 (executable)
@@ -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 <<EOF
+To: qa@lists.clusterfs.com
+Subject: kernel_config change 
+
 The result of a make oldconfig on file $CONFIG_FILE resulted in a
 difference when compared to .config in the following way:
 
@@ -389,7 +417,7 @@ EOF
        # not sure these are entirely useful.  the above and "patch" are good
        #echo -e "\nThe entire new .config file:\n"
         #cat .config
-        } | mail -s "kernel_config change" qa@lists.clusterfs.com
+        } | sendmail -fqa@clusterfs.com -t
     fi
     rm -f $tmpfile
     case "$VERSION" in
@@ -553,7 +581,7 @@ build_kms()
     mkdir -p "${TOPDIR}/modules-${FULL_VERSION}"
     for dir in /usr/src/kernel-modules/* ; do
        # we are replacing lustre-lite, so don't include it
-       if [ ${dir##*/} != "lustre-lite" -a -e $dir/Makefile ]; then
+       if [ "${dir##*/}" != "lustre-lite" -a -e $dir/Makefile ]; then
            build_dir="${TOPDIR}/modules-${FULL_VERSION}/${dir##*/}"
            cp -a $dir $build_dir
            # these modules are terrible, and don't all build