From f3bb48197a5f84f23f38057077b3eb80fe4000f9 Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Tue, 15 Apr 2025 12:35:37 +0200 Subject: pkg/report: include partially stripped prefixes to alt titles It will help avoid bug duplication in case of adding new prefixes to strip. --- pkg/report/linux.go | 25 +++--- pkg/report/report.go | 143 ++++++++++++++++++++++++++++------- pkg/report/testdata/linux/report/179 | 2 + pkg/report/testdata/linux/report/237 | 2 + pkg/report/testdata/linux/report/264 | 2 + pkg/report/testdata/linux/report/266 | 2 + pkg/report/testdata/linux/report/275 | 2 + pkg/report/testdata/linux/report/278 | 2 + pkg/report/testdata/linux/report/288 | 2 + pkg/report/testdata/linux/report/291 | 2 + pkg/report/testdata/linux/report/292 | 2 + pkg/report/testdata/linux/report/296 | 2 + pkg/report/testdata/linux/report/297 | 2 + pkg/report/testdata/linux/report/300 | 2 + pkg/report/testdata/linux/report/316 | 2 + pkg/report/testdata/linux/report/350 | 2 + pkg/report/testdata/linux/report/378 | 2 + pkg/report/testdata/linux/report/421 | 2 + pkg/report/testdata/linux/report/432 | 2 + pkg/report/testdata/linux/report/433 | 2 + pkg/report/testdata/linux/report/434 | 2 + pkg/report/testdata/linux/report/435 | 2 + pkg/report/testdata/linux/report/437 | 2 + pkg/report/testdata/linux/report/438 | 2 + pkg/report/testdata/linux/report/439 | 2 + pkg/report/testdata/linux/report/442 | 2 + pkg/report/testdata/linux/report/445 | 2 + pkg/report/testdata/linux/report/502 | 2 + pkg/report/testdata/linux/report/503 | 2 + pkg/report/testdata/linux/report/504 | 2 + pkg/report/testdata/linux/report/505 | 2 + pkg/report/testdata/linux/report/506 | 2 + pkg/report/testdata/linux/report/507 | 2 + pkg/report/testdata/linux/report/529 | 1 + pkg/report/testdata/linux/report/549 | 2 + pkg/report/testdata/linux/report/610 | 2 + pkg/report/testdata/linux/report/611 | 2 + pkg/report/testdata/linux/report/622 | 1 + pkg/report/testdata/linux/report/623 | 1 + pkg/report/testdata/linux/report/65 | 2 + pkg/report/testdata/linux/report/688 | 2 + pkg/report/testdata/linux/report/75 | 1 + 42 files changed, 204 insertions(+), 40 deletions(-) (limited to 'pkg') diff --git a/pkg/report/linux.go b/pkg/report/linux.go index 598543e6b..63236fe41 100644 --- a/pkg/report/linux.go +++ b/pkg/report/linux.go @@ -917,7 +917,7 @@ func (ctx *linux) setExecutorInfo(rep *Report) { rep.Executor = info } -func linuxStallFrameExtractor(frames []string) string { +func linuxStallFrameExtractor(frames []string) (string, int) { // During rcu stalls and cpu lockups kernel loops in some part of code, // usually across several functions. When the stall is detected, traceback // points to a random stack within the looping code. We generally take @@ -929,22 +929,23 @@ func linuxStallFrameExtractor(frames []string) string { // However, for highly discriminated functions syscalls like ioctl/read/write/connect // we take the previous function (e.g. for connect the one that points to exact // protocol, or for ioctl the one that is related to the device). - prev := frames[0] - for _, frame := range frames { + prev, prevIdx := frames[0], 0 + for i, frame := range frames { if matchesAny([]byte(frame), linuxStallAnchorFrames) { if strings.Contains(frame, "smp_call_function") { // In this case we want this function rather than the previous one // (there can be several variations on the next one). prev = "smp_call_function" + prevIdx = i } - return prev + return prev, prevIdx } - prev = frame + prev, prevIdx = frame, i } - return "" + return "", -1 } -func linuxHangTaskFrameExtractor(frames []string) string { +func linuxHangTaskFrameExtractor(frames []string) (string, int) { // The problem with task hung reports is that they manifest at random victim stacks, // rather at the root cause stack. E.g. if there is something wrong with RCU subsystem, // we are getting hangs all over the kernel on all synchronize_* calls. @@ -959,13 +960,13 @@ func linuxHangTaskFrameExtractor(frames []string) string { "synchronize_net": synchronizeRCU, "synchronize_sched": synchronizeRCU, } - for _, frame := range frames { + for i, frame := range frames { for anchor, replacement := range anchorFrames { if strings.Contains(frame, anchor) { if replacement != "" { frame = replacement } - return frame + return frame, i } } } @@ -973,15 +974,15 @@ func linuxHangTaskFrameExtractor(frames []string) string { "wait", "synchronize", "context_switch", "__switch_to", "cancel_delayed_work", "rcu_barrier"} nextFrame: - for _, frame := range frames { + for i, frame := range frames { for _, ignore := range skip { if strings.Contains(frame, ignore) { continue nextFrame } } - return frame + return frame, i } - return "" + return "", -1 } var linuxStallAnchorFrames = []*regexp.Regexp{ diff --git a/pkg/report/report.go b/pkg/report/report.go index d91bf35aa..3277b3b34 100644 --- a/pkg/report/report.go +++ b/pkg/report/report.go @@ -449,7 +449,7 @@ type stackFmt struct { extractor frameExtractor } -type frameExtractor func(frames []string) string +type frameExtractor func(frames []string) (string, int) var parseStackTrace *regexp.Regexp @@ -517,24 +517,38 @@ func extractDescription(output []byte, oops *oops, params *stackParams) ( continue } } - var args []interface{} + var argPrefix []any for i := 2; i < len(match); i += 2 { - args = append(args, string(output[match[i]:match[i+1]])) + argPrefix = append(argPrefix, string(output[match[i]:match[i+1]])) } + var frames []extractedFrame corrupted = "" if f.stack != nil { - frames, ok := extractStackFrame(params, f.stack, output[match[0]:]) + var ok bool + frames, ok = extractStackFrame(params, f.stack, output[match[0]:]) if !ok { corrupted = corruptedNoFrames } - for _, frame := range frames { - args = append(args, frame) - } } + args := canonicalArgs(argPrefix, frames) desc = fmt.Sprintf(f.fmt, args...) for _, alt := range f.alt { altTitles = append(altTitles, fmt.Sprintf(alt, args...)) } + + // Also consider partially stripped prefixes - these will help us + // better deduplicate the reports. + argSequences := partiallyStrippedArgs(argPrefix, frames, params) + for _, args := range argSequences { + altTitle := fmt.Sprintf(f.fmt, args...) + if altTitle != desc { + altTitles = append(altTitles, altTitle) + } + for _, alt := range f.alt { + altTitles = append(altTitles, fmt.Sprintf(alt, args...)) + } + } + altTitles = uniqueStrings(altTitles) format = f } if desc == "" { @@ -577,21 +591,47 @@ type stackParams struct { stripFramePrefixes []string } -func extractStackFrame(params *stackParams, stack *stackFmt, output []byte) ([]string, bool) { +func (sp *stackParams) stripFrames(frames []string) []string { + var ret []string + for _, origFrame := range frames { + // Pick the shortest one. + frame := origFrame + for _, prefix := range sp.stripFramePrefixes { + newFrame := strings.TrimPrefix(origFrame, prefix) + if len(newFrame) < len(frame) { + frame = newFrame + } + } + ret = append(ret, frame) + } + return ret +} + +type extractedFrame struct { + canonical string + raw string +} + +func extractStackFrame(params *stackParams, stack *stackFmt, output []byte) ([]extractedFrame, bool) { skip := append([]string{}, params.skipPatterns...) skip = append(skip, stack.skip...) var skipRe *regexp.Regexp if len(skip) != 0 { skipRe = regexp.MustCompile(strings.Join(skip, "|")) } - extractor := func(frames []string) string { - if len(frames) == 0 { - return "" + extractor := func(rawFrames []string) extractedFrame { + if len(rawFrames) == 0 { + return extractedFrame{} } + stripped := params.stripFrames(rawFrames) if stack.extractor == nil { - return frames[0] + return extractedFrame{stripped[0], rawFrames[0]} } - return stack.extractor(frames) + frame, idx := stack.extractor(stripped) + if frame != "" { + return extractedFrame{frame, rawFrames[idx]} + } + return extractedFrame{} } frames, ok := extractStackFrameImpl(params, output, skipRe, stack.parts, extractor) if ok || len(stack.parts2) == 0 { @@ -605,20 +645,21 @@ func lines(text []byte) [][]byte { } func extractStackFrameImpl(params *stackParams, output []byte, skipRe *regexp.Regexp, - parts []*regexp.Regexp, extractor frameExtractor) ([]string, bool) { + parts []*regexp.Regexp, extractor func([]string) extractedFrame) ([]extractedFrame, bool) { lines := lines(output) - var frames, results []string + var rawFrames []string + var results []extractedFrame ok := true numStackTraces := 0 nextPart: for partIdx := 0; ; partIdx++ { if partIdx == len(parts) || parts[partIdx] == parseStackTrace && numStackTraces > 0 { - keyFrame := extractor(frames) - if keyFrame == "" { - keyFrame, ok = "corrupted", false + keyFrame := extractor(rawFrames) + if keyFrame.canonical == "" { + keyFrame, ok = extractedFrame{"corrupted", "corrupted"}, false } results = append(results, keyFrame) - frames = nil + rawFrames = nil } if partIdx == len(parts) { break @@ -640,7 +681,7 @@ nextPart: if partIdx != len(parts)-1 { match := parts[partIdx+1].FindSubmatch(ln) if match != nil { - frames = appendStackFrame(frames, match, params, skipRe) + rawFrames = appendStackFrame(rawFrames, match, skipRe) partIdx++ continue nextPart } @@ -652,7 +693,7 @@ nextPart: break } } - frames = appendStackFrame(frames, match, params, skipRe) + rawFrames = appendStackFrame(rawFrames, match, skipRe) } } else { var ln []byte @@ -666,7 +707,7 @@ nextPart: if match == nil { continue } - frames = appendStackFrame(frames, match, params, skipRe) + rawFrames = appendStackFrame(rawFrames, match, skipRe) break } } @@ -674,22 +715,68 @@ nextPart: return results, ok } -func appendStackFrame(frames []string, match [][]byte, params *stackParams, skipRe *regexp.Regexp) []string { +func appendStackFrame(frames []string, match [][]byte, skipRe *regexp.Regexp) []string { if len(match) < 2 { return frames } for _, frame := range match[1:] { if frame != nil && (skipRe == nil || !skipRe.Match(frame)) { - frameName := string(frame) - for _, prefix := range params.stripFramePrefixes { - frameName = strings.TrimPrefix(frameName, prefix) - } - frames = append(frames, frameName) + frames = append(frames, string(frame)) } } return frames } +func canonicalArgs(prefix []any, frames []extractedFrame) []any { + ret := append([]any{}, prefix...) + for _, frame := range frames { + ret = append(ret, frame.canonical) + } + return ret +} + +func partiallyStrippedArgs(prefix []any, frames []extractedFrame, params *stackParams) [][]any { + if params == nil { + return nil + } + ret := [][]any{} + for i := 0; i <= len(params.stripFramePrefixes); i++ { + var list []any + add := true + + // Also include the raw frames. + stripPrefix := "" + if i > 0 { + stripPrefix, add = params.stripFramePrefixes[i-1], false + } + for _, frame := range frames { + trimmed := strings.TrimPrefix(frame.raw, stripPrefix) + if trimmed != frame.raw { + add = true + } + list = append(list, trimmed) + } + if add { + list = append(append([]any{}, prefix...), list...) + ret = append(ret, list) + } + } + return ret +} + +func uniqueStrings(source []string) []string { + dup := map[string]struct{}{} + var ret []string + for _, item := range source { + if _, ok := dup[item]; ok { + continue + } + dup[item] = struct{}{} + ret = append(ret, item) + } + return ret +} + func simpleLineParser(output []byte, oopses []*oops, params *stackParams, ignores []*regexp.Regexp) *Report { rep := &Report{ Output: output, diff --git a/pkg/report/testdata/linux/report/179 b/pkg/report/testdata/linux/report/179 index b03ece488..8f71e975f 100644 --- a/pkg/report/testdata/linux/report/179 +++ b/pkg/report/testdata/linux/report/179 @@ -1,5 +1,7 @@ TITLE: INFO: task hung in synchronize_rcu +ALT: INFO: task hung in synchronize_sched ALT: hang in synchronize_rcu +ALT: hang in synchronize_sched TYPE: HANG [ 369.632214] INFO: task syz-executor4:8442 blocked for more than 120 seconds. diff --git a/pkg/report/testdata/linux/report/237 b/pkg/report/testdata/linux/report/237 index 50cfb2b96..5d9e8f7b6 100644 --- a/pkg/report/testdata/linux/report/237 +++ b/pkg/report/testdata/linux/report/237 @@ -1,4 +1,6 @@ TITLE: INFO: rcu detected stall in mount +ALT: INFO: rcu detected stall in ksys_mount +ALT: stall in ksys_mount ALT: stall in mount TYPE: HANG diff --git a/pkg/report/testdata/linux/report/264 b/pkg/report/testdata/linux/report/264 index 349c7c330..506d44274 100644 --- a/pkg/report/testdata/linux/report/264 +++ b/pkg/report/testdata/linux/report/264 @@ -1,4 +1,6 @@ TITLE: BUG: soft lockup in sys_rmdir +ALT: BUG: soft lockup in __x64_sys_rmdir +ALT: stall in __x64_sys_rmdir ALT: stall in sys_rmdir TYPE: HANG diff --git a/pkg/report/testdata/linux/report/266 b/pkg/report/testdata/linux/report/266 index 7b0c0aa22..0018ceec9 100644 --- a/pkg/report/testdata/linux/report/266 +++ b/pkg/report/testdata/linux/report/266 @@ -1,4 +1,6 @@ TITLE: BUG: soft lockup in sys_rmdir +ALT: BUG: soft lockup in __x64_sys_rmdir +ALT: stall in __x64_sys_rmdir ALT: stall in sys_rmdir TYPE: HANG diff --git a/pkg/report/testdata/linux/report/275 b/pkg/report/testdata/linux/report/275 index 433dde00c..dfe1c6be5 100644 --- a/pkg/report/testdata/linux/report/275 +++ b/pkg/report/testdata/linux/report/275 @@ -1,5 +1,7 @@ TITLE: INFO: rcu detected stall in smp_call_function +ALT: INFO: rcu detected stall in smp_call_function_single ALT: stall in smp_call_function +ALT: stall in smp_call_function_single TYPE: HANG [ 401.753130] rcu: INFO: rcu_sched detected stalls on CPUs/tasks: diff --git a/pkg/report/testdata/linux/report/278 b/pkg/report/testdata/linux/report/278 index 57f39cc0d..5c9268c05 100644 --- a/pkg/report/testdata/linux/report/278 +++ b/pkg/report/testdata/linux/report/278 @@ -1,4 +1,6 @@ TITLE: INFO: rcu detected stall in sys_futex +ALT: INFO: rcu detected stall in __x64_sys_futex +ALT: stall in __x64_sys_futex ALT: stall in sys_futex TYPE: HANG diff --git a/pkg/report/testdata/linux/report/288 b/pkg/report/testdata/linux/report/288 index 8e5a78051..24ad049cd 100644 --- a/pkg/report/testdata/linux/report/288 +++ b/pkg/report/testdata/linux/report/288 @@ -1,5 +1,7 @@ TITLE: BUG: soft lockup in smp_call_function +ALT: BUG: soft lockup in smp_call_function_single ALT: stall in smp_call_function +ALT: stall in smp_call_function_single TYPE: HANG [ 1342.342232] watchdog: BUG: soft lockup - CPU#0 stuck for 123s! [syz-executor0:8009] diff --git a/pkg/report/testdata/linux/report/291 b/pkg/report/testdata/linux/report/291 index 588fb848c..b82bdc71d 100644 --- a/pkg/report/testdata/linux/report/291 +++ b/pkg/report/testdata/linux/report/291 @@ -1,4 +1,6 @@ TITLE: INFO: rcu detected stall in rmdir +ALT: INFO: rcu detected stall in SyS_rmdir +ALT: stall in SyS_rmdir ALT: stall in rmdir TYPE: HANG diff --git a/pkg/report/testdata/linux/report/292 b/pkg/report/testdata/linux/report/292 index 0f78325d5..acc142e03 100644 --- a/pkg/report/testdata/linux/report/292 +++ b/pkg/report/testdata/linux/report/292 @@ -1,5 +1,7 @@ TITLE: INFO: rcu detected stall in smp_call_function +ALT: INFO: rcu detected stall in smp_call_function_single ALT: stall in smp_call_function +ALT: stall in smp_call_function_single TYPE: HANG [ 420.341960] INFO: rcu_preempt detected stalls on CPUs/tasks: diff --git a/pkg/report/testdata/linux/report/296 b/pkg/report/testdata/linux/report/296 index 77d85584a..33ae31f09 100644 --- a/pkg/report/testdata/linux/report/296 +++ b/pkg/report/testdata/linux/report/296 @@ -1,4 +1,6 @@ TITLE: BUG: soft lockup in mount +ALT: BUG: soft lockup in compat_SyS_mount +ALT: stall in compat_SyS_mount ALT: stall in mount TYPE: HANG diff --git a/pkg/report/testdata/linux/report/297 b/pkg/report/testdata/linux/report/297 index 0e6471dd2..22ce896a0 100644 --- a/pkg/report/testdata/linux/report/297 +++ b/pkg/report/testdata/linux/report/297 @@ -1,5 +1,7 @@ TITLE: BUG: soft lockup in smp_call_function +ALT: BUG: soft lockup in smp_call_function_single ALT: stall in smp_call_function +ALT: stall in smp_call_function_single TYPE: HANG [ 601.962573] watchdog: BUG: soft lockup - CPU#1 stuck for 123s! [syz-executor1:24793] diff --git a/pkg/report/testdata/linux/report/300 b/pkg/report/testdata/linux/report/300 index 73b10050c..7c06c668b 100644 --- a/pkg/report/testdata/linux/report/300 +++ b/pkg/report/testdata/linux/report/300 @@ -1,5 +1,7 @@ TITLE: INFO: rcu detected stall in smp_call_function +ALT: INFO: rcu detected stall in smp_call_function_single ALT: stall in smp_call_function +ALT: stall in smp_call_function_single TYPE: HANG [ 3481.239960] INFO: rcu_sched detected stalls on CPUs/tasks: diff --git a/pkg/report/testdata/linux/report/316 b/pkg/report/testdata/linux/report/316 index 3f9f9e131..f6e11a0e1 100644 --- a/pkg/report/testdata/linux/report/316 +++ b/pkg/report/testdata/linux/report/316 @@ -1,4 +1,6 @@ TITLE: kernel panic: corrupted stack end in sys_socket +ALT: kernel panic: corrupted stack end in __arm64_sys_socket +ALT: stack-overflow in __arm64_sys_socket ALT: stack-overflow in sys_socket [ 2231.649459] Kernel panic - not syncing: corrupted stack end detected inside scheduler diff --git a/pkg/report/testdata/linux/report/350 b/pkg/report/testdata/linux/report/350 index 19cab373f..85a813250 100644 --- a/pkg/report/testdata/linux/report/350 +++ b/pkg/report/testdata/linux/report/350 @@ -1,5 +1,7 @@ TITLE: BUG: soft lockup in smp_call_function +ALT: BUG: soft lockup in smp_call_function_many ALT: stall in smp_call_function +ALT: stall in smp_call_function_many TYPE: HANG [ 1098.601132][ C2] watchdog: BUG: soft lockup - CPU#2 stuck for 136s! [syz-executor4:4888] diff --git a/pkg/report/testdata/linux/report/378 b/pkg/report/testdata/linux/report/378 index 1b0edbaa2..ec40c051a 100644 --- a/pkg/report/testdata/linux/report/378 +++ b/pkg/report/testdata/linux/report/378 @@ -1,4 +1,6 @@ TITLE: INFO: rcu detected stall in sys_inotify_init +ALT: INFO: rcu detected stall in __ia32_sys_inotify_init +ALT: stall in __ia32_sys_inotify_init ALT: stall in sys_inotify_init TYPE: HANG diff --git a/pkg/report/testdata/linux/report/421 b/pkg/report/testdata/linux/report/421 index e6bf45a3d..d7d540a4b 100644 --- a/pkg/report/testdata/linux/report/421 +++ b/pkg/report/testdata/linux/report/421 @@ -1,4 +1,6 @@ TITLE: INFO: rcu detected stall in sys_exit_group +ALT: INFO: rcu detected stall in __x64_sys_exit_group +ALT: stall in __x64_sys_exit_group ALT: stall in sys_exit_group TYPE: HANG diff --git a/pkg/report/testdata/linux/report/432 b/pkg/report/testdata/linux/report/432 index 92a356636..7d6e8a585 100644 --- a/pkg/report/testdata/linux/report/432 +++ b/pkg/report/testdata/linux/report/432 @@ -1,5 +1,7 @@ TITLE: INFO: task hung in synchronize_rcu +ALT: INFO: task hung in synchronize_rcu_expedited ALT: hang in synchronize_rcu +ALT: hang in synchronize_rcu_expedited TYPE: HANG [ 1686.611836][ T1064] INFO: task kworker/u4:5:9381 blocked for more than 143 seconds. diff --git a/pkg/report/testdata/linux/report/433 b/pkg/report/testdata/linux/report/433 index 87b77b49b..0aaa93bf8 100644 --- a/pkg/report/testdata/linux/report/433 +++ b/pkg/report/testdata/linux/report/433 @@ -1,5 +1,7 @@ TITLE: INFO: task hung in synchronize_rcu +ALT: INFO: task hung in synchronize_rcu_expedited ALT: hang in synchronize_rcu +ALT: hang in synchronize_rcu_expedited TYPE: HANG [ 741.089420][ T1057] INFO: task syz-executor.2:28539 blocked for more than 143 seconds. diff --git a/pkg/report/testdata/linux/report/434 b/pkg/report/testdata/linux/report/434 index aefcc52cd..38913b724 100644 --- a/pkg/report/testdata/linux/report/434 +++ b/pkg/report/testdata/linux/report/434 @@ -1,5 +1,7 @@ TITLE: INFO: task hung in synchronize_rcu +ALT: INFO: task hung in synchronize_rcu_expedited ALT: hang in synchronize_rcu +ALT: hang in synchronize_rcu_expedited TYPE: HANG [ 405.210796][ T1057] INFO: task syz-executor.3:18078 blocked for more than 143 seconds. diff --git a/pkg/report/testdata/linux/report/435 b/pkg/report/testdata/linux/report/435 index 8274280c9..d30faf84d 100644 --- a/pkg/report/testdata/linux/report/435 +++ b/pkg/report/testdata/linux/report/435 @@ -1,4 +1,6 @@ TITLE: INFO: task hung in synchronize_rcu +ALT: INFO: task hung in __synchronize_srcu +ALT: hang in __synchronize_srcu ALT: hang in synchronize_rcu TYPE: HANG diff --git a/pkg/report/testdata/linux/report/437 b/pkg/report/testdata/linux/report/437 index 96b6796ba..494224268 100644 --- a/pkg/report/testdata/linux/report/437 +++ b/pkg/report/testdata/linux/report/437 @@ -1,5 +1,7 @@ TITLE: INFO: task hung in synchronize_rcu +ALT: INFO: task hung in synchronize_rcu_expedited ALT: hang in synchronize_rcu +ALT: hang in synchronize_rcu_expedited TYPE: HANG [ 1395.402634][ T1057] INFO: task kworker/u4:8:11933 blocked for more than 143 seconds. diff --git a/pkg/report/testdata/linux/report/438 b/pkg/report/testdata/linux/report/438 index 9804eb4b9..9ec38a3ae 100644 --- a/pkg/report/testdata/linux/report/438 +++ b/pkg/report/testdata/linux/report/438 @@ -1,5 +1,7 @@ TITLE: INFO: task hung in synchronize_rcu +ALT: INFO: task hung in synchronize_rcu_expedited ALT: hang in synchronize_rcu +ALT: hang in synchronize_rcu_expedited TYPE: HANG [ 327.308891][ T1057] INFO: task kworker/u4:6:10032 blocked for more than 143 seconds. diff --git a/pkg/report/testdata/linux/report/439 b/pkg/report/testdata/linux/report/439 index 05166f32f..d64f38030 100644 --- a/pkg/report/testdata/linux/report/439 +++ b/pkg/report/testdata/linux/report/439 @@ -1,5 +1,7 @@ TITLE: INFO: task hung in synchronize_rcu +ALT: INFO: task hung in synchronize_rcu_expedited ALT: hang in synchronize_rcu +ALT: hang in synchronize_rcu_expedited TYPE: HANG [ 348.321211][ T1056] INFO: task syz-executor.2:9976 blocked for more than 143 seconds. diff --git a/pkg/report/testdata/linux/report/442 b/pkg/report/testdata/linux/report/442 index 1c0a9ac72..f04d55ca1 100644 --- a/pkg/report/testdata/linux/report/442 +++ b/pkg/report/testdata/linux/report/442 @@ -1,5 +1,7 @@ TITLE: INFO: task hung in synchronize_rcu +ALT: INFO: task hung in synchronize_sched ALT: hang in synchronize_rcu +ALT: hang in synchronize_sched TYPE: HANG [ 716.122185] INFO: task syz-executor.0:16519 blocked for more than 140 seconds. diff --git a/pkg/report/testdata/linux/report/445 b/pkg/report/testdata/linux/report/445 index ddfdf6cdc..f14756da6 100644 --- a/pkg/report/testdata/linux/report/445 +++ b/pkg/report/testdata/linux/report/445 @@ -1,5 +1,7 @@ TITLE: INFO: task hung in synchronize_rcu +ALT: INFO: task hung in synchronize_rcu_expedited ALT: hang in synchronize_rcu +ALT: hang in synchronize_rcu_expedited TYPE: HANG [ 341.326285][ T1070] INFO: task kworker/u4:0:7 blocked for more than 143 seconds. diff --git a/pkg/report/testdata/linux/report/502 b/pkg/report/testdata/linux/report/502 index 79eaf7cf3..4523fd17f 100644 --- a/pkg/report/testdata/linux/report/502 +++ b/pkg/report/testdata/linux/report/502 @@ -1,5 +1,7 @@ TITLE: INFO: rcu detected stall in smp_call_function +ALT: INFO: rcu detected stall in smp_call_function_single ALT: stall in smp_call_function +ALT: stall in smp_call_function_single TYPE: HANG [ 611.778481][ C1] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks: diff --git a/pkg/report/testdata/linux/report/503 b/pkg/report/testdata/linux/report/503 index 89744f3e6..24a874c17 100644 --- a/pkg/report/testdata/linux/report/503 +++ b/pkg/report/testdata/linux/report/503 @@ -1,5 +1,7 @@ TITLE: BUG: soft lockup in smp_call_function +ALT: BUG: soft lockup in smp_call_function_single ALT: stall in smp_call_function +ALT: stall in smp_call_function_single TYPE: HANG [ 1117.938056][ C0] watchdog: BUG: soft lockup - CPU#0 stuck for 123s! [syz-executor.1:2970] diff --git a/pkg/report/testdata/linux/report/504 b/pkg/report/testdata/linux/report/504 index 8dc6a541f..dc8fc4c41 100644 --- a/pkg/report/testdata/linux/report/504 +++ b/pkg/report/testdata/linux/report/504 @@ -1,5 +1,7 @@ TITLE: BUG: soft lockup in smp_call_function +ALT: BUG: soft lockup in smp_call_function_single ALT: stall in smp_call_function +ALT: stall in smp_call_function_single TYPE: HANG [ 635.060078][ C0] watchdog: BUG: soft lockup - CPU#0 stuck for 123s! [syz-executor.2:12834] diff --git a/pkg/report/testdata/linux/report/505 b/pkg/report/testdata/linux/report/505 index af0f7fc92..42ef0ff31 100644 --- a/pkg/report/testdata/linux/report/505 +++ b/pkg/report/testdata/linux/report/505 @@ -1,5 +1,7 @@ TITLE: BUG: soft lockup in smp_call_function +ALT: BUG: soft lockup in smp_call_function_single ALT: stall in smp_call_function +ALT: stall in smp_call_function_single TYPE: HANG [ 1472.340932][ C1] watchdog: BUG: soft lockup - CPU#1 stuck for 123s! [syz-executor.0:8399] diff --git a/pkg/report/testdata/linux/report/506 b/pkg/report/testdata/linux/report/506 index fe00040d0..81b2c21c9 100644 --- a/pkg/report/testdata/linux/report/506 +++ b/pkg/report/testdata/linux/report/506 @@ -1,5 +1,7 @@ TITLE: BUG: soft lockup in smp_call_function +ALT: BUG: soft lockup in smp_call_function_single ALT: stall in smp_call_function +ALT: stall in smp_call_function_single TYPE: HANG [ 1270.359469][ C0] watchdog: BUG: soft lockup - CPU#0 stuck for 123s! [kworker/0:13:3571] diff --git a/pkg/report/testdata/linux/report/507 b/pkg/report/testdata/linux/report/507 index d8850e22d..dc1f03393 100644 --- a/pkg/report/testdata/linux/report/507 +++ b/pkg/report/testdata/linux/report/507 @@ -1,4 +1,6 @@ TITLE: INFO: task hung in synchronize_rcu +ALT: INFO: task hung in __synchronize_srcu +ALT: hang in __synchronize_srcu ALT: hang in synchronize_rcu TYPE: HANG diff --git a/pkg/report/testdata/linux/report/529 b/pkg/report/testdata/linux/report/529 index d4b11bc8e..e5dd71133 100644 --- a/pkg/report/testdata/linux/report/529 +++ b/pkg/report/testdata/linux/report/529 @@ -1,4 +1,5 @@ TITLE: WARNING: suspicious RCU usage in sys_rt_sigreturn +ALT: WARNING: suspicious RCU usage in __arm64_sys_rt_sigreturn TYPE: LOCKDEP [ 581.924125][ T4410] ============================= diff --git a/pkg/report/testdata/linux/report/549 b/pkg/report/testdata/linux/report/549 index 40c91b21a..cd58f922f 100644 --- a/pkg/report/testdata/linux/report/549 +++ b/pkg/report/testdata/linux/report/549 @@ -1,5 +1,7 @@ TITLE: INFO: rcu detected stall in openat2 +ALT: INFO: rcu detected stall in sys_openat2 ALT: stall in openat2 +ALT: stall in sys_openat2 TYPE: HANG rcu: INFO: rcu_sched self-detected stall on CPU diff --git a/pkg/report/testdata/linux/report/610 b/pkg/report/testdata/linux/report/610 index 575db2508..e9415bc84 100644 --- a/pkg/report/testdata/linux/report/610 +++ b/pkg/report/testdata/linux/report/610 @@ -1,4 +1,6 @@ TITLE: INFO: rcu detected stall in sys_recvmmsg +ALT: INFO: rcu detected stall in __x64_sys_recvmmsg +ALT: stall in __x64_sys_recvmmsg ALT: stall in sys_recvmmsg TYPE: HANG diff --git a/pkg/report/testdata/linux/report/611 b/pkg/report/testdata/linux/report/611 index 63d87ed48..cbf9aa46c 100644 --- a/pkg/report/testdata/linux/report/611 +++ b/pkg/report/testdata/linux/report/611 @@ -1,4 +1,6 @@ TITLE: INFO: rcu detected stall in sys_sendmmsg +ALT: INFO: rcu detected stall in __x64_sys_sendmmsg +ALT: stall in __x64_sys_sendmmsg ALT: stall in sys_sendmmsg TYPE: HANG diff --git a/pkg/report/testdata/linux/report/622 b/pkg/report/testdata/linux/report/622 index f50eb40cb..9c8af83ba 100644 --- a/pkg/report/testdata/linux/report/622 +++ b/pkg/report/testdata/linux/report/622 @@ -1,4 +1,5 @@ TITLE: WARNING: refcount bug in sys_memfd_secret +ALT: WARNING: refcount bug in __se_sys_memfd_secret TYPE: WARNING [ 54.834944][ T6519] ------------[ cut here ]------------ diff --git a/pkg/report/testdata/linux/report/623 b/pkg/report/testdata/linux/report/623 index f532d5509..6871fa11f 100644 --- a/pkg/report/testdata/linux/report/623 +++ b/pkg/report/testdata/linux/report/623 @@ -1,4 +1,5 @@ TITLE: WARNING: refcount bug in sys_memfd_secret +ALT: WARNING: refcount bug in __x64_sys_memfd_secret TYPE: WARNING [ 90.146573][ T6540] ------------[ cut here ]------------ diff --git a/pkg/report/testdata/linux/report/65 b/pkg/report/testdata/linux/report/65 index b524f8217..0e99347de 100644 --- a/pkg/report/testdata/linux/report/65 +++ b/pkg/report/testdata/linux/report/65 @@ -1,5 +1,7 @@ TITLE: BUG: soft lockup in smp_call_function +ALT: BUG: soft lockup in smp_call_function_single ALT: stall in smp_call_function +ALT: stall in smp_call_function_single TYPE: HANG [ 247.938942] watchdog: BUG: soft lockup - CPU#0 stuck for 134s! [kworker/0:2:1400] diff --git a/pkg/report/testdata/linux/report/688 b/pkg/report/testdata/linux/report/688 index 2feb97add..d29eee23b 100644 --- a/pkg/report/testdata/linux/report/688 +++ b/pkg/report/testdata/linux/report/688 @@ -1,4 +1,6 @@ TITLE: INFO: rcu detected stall in sys_recvmmsg +ALT: INFO: rcu detected stall in __arm64_sys_recvmmsg +ALT: stall in __arm64_sys_recvmmsg ALT: stall in sys_recvmmsg TYPE: HANG diff --git a/pkg/report/testdata/linux/report/75 b/pkg/report/testdata/linux/report/75 index 56fc46efb..bb614aba3 100644 --- a/pkg/report/testdata/linux/report/75 +++ b/pkg/report/testdata/linux/report/75 @@ -1,4 +1,5 @@ TITLE: BUG: scheduling while atomic in pause +ALT: BUG: scheduling while atomic in SyS_pause TYPE: ATOMIC_SLEEP [ 185.479466] BUG: scheduling while atomic: syz-executor0/19425/0x00000000 -- cgit mrf-deployment