diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2025-04-15 12:35:37 +0200 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2025-04-15 11:22:00 +0000 |
| commit | f3bb48197a5f84f23f38057077b3eb80fe4000f9 (patch) | |
| tree | f8d3c16a206e13c09e83670a66b803a64c608019 /pkg | |
| parent | 23b969b777238d45d0e061f25dd93fbfaf5ee7bc (diff) | |
pkg/report: include partially stripped prefixes to alt titles
It will help avoid bug duplication in case of adding new prefixes to
strip.
Diffstat (limited to 'pkg')
42 files changed, 204 insertions, 40 deletions
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 |
