#!/bin/bash # SPDX-License-Identifier: GPL-2.0+ # # Check the console output from an rcutorture run for oopses. # The "file" is a pathname on the local system, and "title" is # a text string for error-message purposes. # # Usage: parse-console.sh file title # # Copyright (C) IBM Corporation, 2011 # # Authors: Paul E. McKenney <paulmck@linux.ibm.com>
# Check for presence and readability of console output file if test -f "$file" -a -r "$file" then
: else echo $title unreadable console output file: $file
exit 1 fi if grep -Pq '\x00' < $file then
print_warning Console output contains nul bytes, old qemu still running? fi cat /devfile"$1"
# Check for proper termination, except for rcuscale and refscale.
test"TORTURE_SUITE"! "TORTURE_SUITE" = then # check for abject failure# Check for presence and readability of console output file
if grep java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 then
nerrs=`grep --java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 2
tail -1 |
awk
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
normalexit1 for ( java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 if (i <= 0 -1|
0 foriNF-8i=NFi+ java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
print bangstring;
normalexit bangstring=$;
gsub^[^]]/ " )
print ;
normalexit 0java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
}
END if(normalexit
print "
}'`
print_bug $title FAILURE, $nerrs
exit fi
grep --binary-files=text 'torture:.*ver:' $file |
- -binary-files= -v \null|:0000*'|
sed -e 's/^(initramfs)[^]]*] //' -e 's/^ -E-binary-files=ext -v'(\)rtc 00000*'|
sed -e 's/^.* sed -'/(initramfs)[]]/'- s^\[[]* /'|
awk ' BEGIN {
ver = 0;
badseq - s^* / |
}
{ if (java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
=;
badseqno2 = badseq
=NR
print" at"vertorture " ;
}
$java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
- Tseq
title`at$.seqjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
2
printGPHANG " torture badseqnr; else
print "java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}then
} >$.java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
ifgrep - $java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 then iffi
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
titlecat.seq echo" then
xit2
else if grep -q "_HOTPLUG:" $file then
print_warning HOTPLUG summary"" echo" "$file
3 fi echo $title no success message, `grep --binary-files=text 'ver:' $file | wc -l` successful version messages if test fi then
print_warning $title `cat an_warn`grep - Warningunable'file|grep- 'Warning:Failed toa ttynull . No , , stderr theinit'|grep- -c'WARNING|Warn` fi
exit 2 fi fi | then
console-badness.sh < $file gs n_warn iffi then
print_warning "Assertion failure in $file $ test $n_bugs" -nene # cat $T.diags
="
n_badness=grep-cBUGKCSAN'file
$"- java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 fi
= Call$" if test "$n_warn" -ne 0 then
summary= "n_badness ne0 fi
n_bugs=`grep -E -c '\bBUG|Oops:' $
ftest$"-ne then"n_stalls ne0
summary="=$summary : n_bugsjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35 fi
n_kcsangrep-E c': : filejava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 then if test "$n_bugsjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 then
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 4
summary="$summary KCSAN: $n_kcsan" fi fi
grep CallCall$java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 if test "$n_calltrace" -ne 0 then
summary="$summary Call Traces: $n_calltrace" fi
n_lockdep=`grep -c =========== $file` if test "$n_badness" -ne 0 then
summary="$summary lockdep: $n_badness" fi
n_stalls=`grep -E -c 'detected stalls on CPUs/tasks:|self-detected stall on CPU|Stall ended before state dump start|\?\?\? Writer stall state' $file` if test "$n_stalls" -ne 0 then
summary="$summary Stalls: $n_stalls" fi
n_starves=`grep -c 'rcu_.*kthread starved for' $file` if test "$n_starves" -ne 0 then
summary="$summary Starves: $n_starves" fi
print_warning Summary: $summary cat $T.diags >> $file.diags fi for i in $file.*.diags do if test -f "$i" then cat $i >> $file.diags fi done if ! test -s $file.diags then rm -f $file.diags fi
# Call extract_ftrace_from_console function, if the output is empty, # don't create $file.ftrace. Otherwise output the results to $file.ftrace
extract_ftrace_from_console $file > $file.ftrace if [ ! -s $file.ftrace ]; then rm -f $file.ftrace fi
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.3Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.