Skip to content

Commit 4a8c878

Browse files
committed
ci: broaden recurrent failure diagnostics
1 parent 6269a37 commit 4a8c878

1 file changed

Lines changed: 29 additions & 15 deletions

File tree

.github/workflows/diagnose-recurrent-linux.yaml

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ env:
1111

1212
jobs:
1313
diagnose:
14-
runs-on: ubuntu-latest
14+
runs-on: ${{ matrix.os }}
1515
strategy:
1616
fail-fast: false
1717
matrix:
18-
attempt: [1, 2, 3, 4, 5, 6, 7, 8]
19-
name: attempt-${{ matrix.attempt }}
18+
os: [ubuntu-22.04, ubuntu-24.04]
19+
attempt: [1, 2, 3, 4]
20+
name: ${{ matrix.os }}-${{ matrix.attempt }}
2021
steps:
2122
- uses: actions/checkout@v6
2223
with:
@@ -26,6 +27,7 @@ jobs:
2627
uses: actions/setup-python@v6
2728
with:
2829
python-version: "3.11"
30+
cache: pip
2931

3032
- name: Restore model cache
3133
uses: actions/cache@v5
@@ -36,14 +38,7 @@ jobs:
3638
- name: Show runner CPU
3739
run: lscpu
3840

39-
- name: Show glibc before package installation
40-
run: ldd --version
41-
42-
- name: Install debugger without upgrading installed packages
43-
run: |
44-
sudo apt-get install --yes --no-install-recommends --no-upgrade gdb
45-
46-
- name: Show glibc after package installation
41+
- name: Show glibc
4742
run: ldd --version
4843

4944
- name: Build package
@@ -52,17 +47,36 @@ jobs:
5247
python -m pip install uv
5348
python -m uv pip install -e '.[all]' --verbose
5449
50+
- name: Reproduce recurrent context construction
51+
id: recurrent
52+
continue-on-error: true
53+
env:
54+
VERBOSE: "1"
55+
run: python tests/diagnose_recurrent_context.py
56+
5557
- name: Reproduce full test suite
56-
id: reproduce
58+
id: suite
5759
continue-on-error: true
5860
run: python -m pytest
5961

60-
- name: Capture full-suite backtrace
61-
if: steps.reproduce.outcome == 'failure'
62+
- name: Install debugger after failure
63+
if: steps.recurrent.outcome == 'failure' || steps.suite.outcome == 'failure'
64+
run: |
65+
sudo apt-get update
66+
sudo apt-get install --yes --no-install-recommends --no-upgrade gdb
67+
68+
- name: Capture recurrent constructor backtrace
69+
if: steps.recurrent.outcome == 'failure' || steps.suite.outcome == 'failure'
6270
continue-on-error: true
71+
env:
72+
VERBOSE: "1"
6373
run: |
6474
gdb --batch \
6575
-ex "set pagination off" \
6676
-ex run \
6777
-ex "thread apply all bt" \
68-
--args python -m pytest
78+
--args python tests/diagnose_recurrent_context.py
79+
80+
- name: Fail when a reproduction failed
81+
if: steps.recurrent.outcome == 'failure' || steps.suite.outcome == 'failure'
82+
run: exit 1

0 commit comments

Comments
 (0)