Maxim Kuvyrkov via linaro-toolchain linaro-toolchain@lists.linaro.org writes:
Linaro CI has very consistently identified same failures in patches 1/8, 2/8, 3/8, 4/8, and 5/8 of your patch series for both aarch32-linux and aarch64-linux targets. Starting with patch 6/8 testing passes for both aarch32-linux and aarch64-linux. Also, no other patches in [1] show same failure pattern as your patch series.
It's possible that there is a problem with Linaro CI, but your patch [2] seems like a likely culprit. Maybe it's missing a part that's later added in 6/8?
Please let me know if it still looks like a CI failure, and I'll investigate more.
I think there's something wrong with the reported list of regressions.
If I run validate_failures.py manually from the precommit job's artifacts.precommit directory I get a shorter list of regressions:
$ validate_failures.py --manifest=06-check_regression/baseline.xfail --results=<(unxz -c sumfiles/gdb.sum.xz) Manifest: 06-check_regression/baseline.xfail Getting actual results from user-provided results /proc/self/fd/11
Unexpected results in this build (new failures) === gdb tests ===
Running gdb:gdb.base/gdb-sigterm.exp ... UNRESOLVED: gdb.base/gdb-sigterm.exp: 50 SIGTERM passes FAIL: gdb.base/gdb-sigterm.exp: pass=0: expect eof (GDB internal error)
Running gdb:gdb.mi/mi-break.exp ... FAIL: gdb.mi/mi-break.exp: mi-mode=separate: test_ignore_count: insert breakpoint with ignore count at callme (unexpected output) FAIL: gdb.mi/mi-break.exp: mi-mode=separate: test_tbreak_creation_and_listing: delete temp breakpoints (unexpected output) FAIL: gdb.mi/mi-break.exp: mi-mode=separate: test_tbreak_creation_and_listing: list of breakpoints (timeout)
Running gdb:gdb.reverse/solib-precsave.exp ... FAIL: gdb.reverse/solib-precsave.exp: reverse-next first shr1 FAIL: gdb.reverse/solib-precsave.exp: reverse-next generic FAIL: gdb.reverse/solib-precsave.exp: reverse-next over solib function one FAIL: gdb.reverse/solib-precsave.exp: reverse-next over solib function two FAIL: gdb.reverse/solib-precsave.exp: reverse-next second shr1 FAIL: gdb.reverse/solib-precsave.exp: reverse-next third shr1 FAIL: gdb.reverse/solib-precsave.exp: reverse-step into solib function one FAIL: gdb.reverse/solib-precsave.exp: reverse-step into solib function two FAIL: gdb.reverse/solib-precsave.exp: reverse-step within solib function one FAIL: gdb.reverse/solib-precsave.exp: reverse-step within solib function two
Running gdb:gdb.threads/detach-step-over.exp ... FAIL: gdb.threads/detach-step-over.exp: breakpoint-condition-evaluation=host: target-non-stop=on: non-stop=on: displaced=off: test_detach_command: iter 3: attach (GDB internal error)
Running gdb:gdb.threads/interrupt-while-step-over.exp ... FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=19: wait for stops (timeout) FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: iter=5: wait for stops (timeout)
Running gdb:gdb.threads/next-fork-exec-other-thread.exp ... FAIL: gdb.threads/next-fork-exec-other-thread.exp: fork_func=fork: target-non-stop=off: non-stop=off: displaced-stepping=auto: i=1: next to for loop (timeout) FAIL: gdb.threads/next-fork-exec-other-thread.exp: fork_func=fork: target-non-stop=off: non-stop=off: displaced-stepping=off: i=3: next to for loop (timeout) FAIL: gdb.threads/next-fork-exec-other-thread.exp: fork_func=fork: target-non-stop=off: non-stop=off: displaced-stepping=on: i=7: next to for loop (timeout) FAIL: gdb.threads/next-fork-exec-other-thread.exp: fork_func=vfork: target-non-stop=off: non-stop=off: displaced-stepping=auto: i=1: next to other line (timeout) FAIL: gdb.threads/next-fork-exec-other-thread.exp: fork_func=vfork: target-non-stop=off: non-stop=off: displaced-stepping=off: i=0: next to other line (timeout) FAIL: gdb.threads/next-fork-exec-other-thread.exp: fork_func=vfork: target-non-stop=off: non-stop=off: displaced-stepping=on: i=1: next to for loop (timeout)
Running gdb:gdb.threads/next-fork-other-thread.exp ... FAIL: gdb.threads/next-fork-other-thread.exp: fork_func=fork: target-non-stop=off: non-stop=off: displaced-stepping=auto: i=10: next to for loop (timeout) FAIL: gdb.threads/next-fork-other-thread.exp: fork_func=fork: target-non-stop=off: non-stop=off: displaced-stepping=off: i=5: next to for loop (timeout) FAIL: gdb.threads/next-fork-other-thread.exp: fork_func=fork: target-non-stop=off: non-stop=off: displaced-stepping=on: i=3: next to other line (timeout)
Running gdb:gdb.threads/process-dies-while-detaching.exp ... FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint:sw: continue to breakpoint: _exit (timeout) FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: detach: continue to breakpoint: _exit (timeout) FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: watchpoint:sw: continue to breakpoint: _exit (timeout)
[ Snipped the rest of the output for brevity, but the list of potential regressions above is complete. ]
Guinevere,
The FAILs in gdb.threads/ are almost surely regressions not yet marked as such by our CI. I also see the gdb.base/gdb-sigterm.exp and gdb.mi/mi-break.exp FAILs on current trunk so they're also false positives.
OTOH gdb.reverse/solib-precsave.exp passes fully on trunk so it looks like a real regression.