|
3 | 3 | # from Chrome for Testing, launches it in a tight loop with the same flags |
4 | 4 | # Playwright uses, and counts SIGSEGV exits. |
5 | 5 | # |
6 | | -# Mirrors test_docker.yml's matrix and `--ipc=host` exactly so the runtime |
7 | | -# environment is identical to the failing job, modulo the Java/Playwright |
8 | | -# layer. |
| 6 | +# Mirrors test_docker.yml's `--ipc=host` and ubuntu:jammy container exactly. |
| 7 | +# Runs 5 parallel replicas to amortize the ~0.1-1% per-launch crash rate. |
9 | 8 | name: Repro CHS jammy SIGSEGV |
10 | 9 |
|
11 | 10 | on: |
12 | 11 | workflow_dispatch: |
13 | 12 | inputs: |
14 | 13 | iterations: |
15 | | - description: Launches per matrix leg |
16 | | - default: '300' |
| 14 | + description: Launches per replica |
| 15 | + default: '3000' |
17 | 16 | parallel: |
18 | | - description: Concurrent launches |
19 | | - default: '4' |
| 17 | + description: Concurrent launches per replica |
| 18 | + default: '8' |
20 | 19 | chrome_version: |
21 | | - description: Chrome for Testing version (e.g. 148.0.7778.96) |
| 20 | + description: Chrome for Testing version |
22 | 21 | default: '148.0.7778.96' |
23 | 22 | push: |
24 | 23 | branches: |
25 | 24 | - 'repro/**' |
26 | 25 |
|
27 | 26 | jobs: |
28 | 27 | repro: |
29 | | - name: Repro (${{ matrix.flavor }}, ${{ matrix.runs-on }}) |
| 28 | + name: Repro jammy x86 (replica ${{ matrix.replica }}) |
30 | 29 | timeout-minutes: 60 |
31 | | - runs-on: ${{ matrix.runs-on }} |
| 30 | + runs-on: ubuntu-24.04 |
32 | 31 | strategy: |
33 | 32 | fail-fast: false |
34 | 33 | matrix: |
35 | | - flavor: [jammy, noble] |
36 | | - runs-on: [ubuntu-24.04, ubuntu-24.04-arm] |
| 34 | + replica: [1, 2, 3, 4, 5] |
37 | 35 | steps: |
38 | 36 | - uses: actions/checkout@v6 |
39 | 37 |
|
40 | 38 | - name: Build Docker image |
41 | 39 | run: | |
42 | | - # Override the FROM line to match the matrix flavor. |
43 | | - sed "s|^FROM ubuntu:.*$|FROM ubuntu:${{ matrix.flavor }}|" \ |
44 | | - tools/chs-repro/Dockerfile > tools/chs-repro/Dockerfile.${{ matrix.flavor }} |
45 | 40 | docker build \ |
46 | 41 | --build-arg CHROME_VERSION=${{ inputs.chrome_version || '148.0.7778.96' }} \ |
47 | | - -t chs-repro:${{ matrix.flavor }} \ |
48 | | - -f tools/chs-repro/Dockerfile.${{ matrix.flavor }} \ |
| 42 | + -t chs-repro:jammy \ |
| 43 | + -f tools/chs-repro/Dockerfile \ |
49 | 44 | tools/chs-repro |
50 | 45 |
|
51 | 46 | - name: Run repro (--ipc=host, matches test_docker.yml) |
52 | 47 | run: | |
53 | 48 | docker run --rm --ipc=host \ |
54 | | - -e ITERATIONS=${{ inputs.iterations || '300' }} \ |
55 | | - -e PARALLEL=${{ inputs.parallel || '4' }} \ |
56 | | - chs-repro:${{ matrix.flavor }} |
| 49 | + -e ITERATIONS=${{ inputs.iterations || '3000' }} \ |
| 50 | + -e PARALLEL=${{ inputs.parallel || '8' }} \ |
| 51 | + chs-repro:jammy |
0 commit comments