savecore,crashinfo - fix several problems
authorAlex Hornung <ahornung@gmail.com>
Sat, 11 Sep 2010 12:25:34 +0000 (13:25 +0100)
committerAlex Hornung <ahornung@gmail.com>
Sat, 11 Sep 2010 12:28:04 +0000 (13:28 +0100)
* Fix the savecore rc.d script to only run savecore (and crashinfo) when
  there's actually a core dump available.

* Limit the kgdb CPU time to 15 seconds to avoid looping forever if we
  have a somewhat broken vmcore.

etc/rc.d/savecore
usr.sbin/crashinfo/crashinfo.sh

index 1696cd8..9108669 100644 (file)
@@ -57,10 +57,13 @@ savecore_prestart()
 savecore_start()
 {
        if [ X$dumpdev != X ]; then
-               echo "Checking for core dump..."
-               savecore ${savecore_flags} ${DUMPDIR} ${dumpdev}
-               if checkyesno crashinfo_enable; then
-                       ${crashinfo_program} -d ${DUMPDIR}
+               if savecore -C "${DUMPDIR}" "${dumpdev}" > /dev/null; then
+                       savecore ${savecore_flags} ${DUMPDIR} ${dumpdev}
+                       if checkyesno crashinfo_enable; then
+                               ${crashinfo_program} -d ${DUMPDIR}
+                       fi
+               else
+                       echo 'No core dumps found.'
                fi
                return ${RC_CONFIGURED}
        fi
index fe85da7..df98e40 100644 (file)
@@ -179,16 +179,16 @@ if [ $? -eq 0 ]; then
        echo "bt" >> $file
        if [ -e /usr/src/test/debug/gdb.kernel ]; then
                echo "source /usr/src/test/debug/gdb.kernel" >> $file
+               echo "lstok" >> $file
                echo "psx" >> $file
                echo "running_threads" >> $file
-               echo "lstok" >> $file
-               echo "kldstat" >> $file
                echo "lsvfs" >> $file
                echo "lsvfsops" >> $file
                echo "lsmount" >> $file
+               echo "kldstat" >> $file
        fi
        echo "quit" >> $file
-       kgdb $KERNEL $VMCORE < $file
+       ( ulimit -t 15; kgdb $KERNEL $VMCORE < $file )
        rm -f $file
        echo
 fi