From f1666a1decce2c5656970a481d2cd3cac289834f Mon Sep 17 00:00:00 2001 From: Joshua Colvin Date: Wed, 18 Mar 2026 17:28:42 -0700 Subject: [PATCH] Fix fuzz workflow YAML syntax and fuzz test panic on expected errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix three YAML issues in fuzz.yml: two step definitions had `uses:` as separate list items instead of step properties, and the Slack notification payload had a trailing comma (invalid JSON). Also fix FuzzInboxMultiplexer which panicked on errors from Pop() — errors are expected for random input during fuzzing. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/fuzz.yml | 34 +++++++++++++++++++++++++++--- arbstate/inbox_fuzz_test.go | 5 +---- changelog/jco-fix-fuzz-workflow.md | 2 ++ 3 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 changelog/jco-fix-fuzz-workflow.md diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 6bbcf0a06c9..454c13945fe 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -1,9 +1,11 @@ --- name: Fuzz Tests +run-name: Twice Weekly Fuzzing tests triggered from @${{ github.actor }} of ${{ github.head_ref }} on: workflow_dispatch: schedule: + # Run at 02:36 AM UTC on Mondays and Thursdays - cron: "36 2 * * 1,4" permissions: @@ -40,12 +42,38 @@ jobs: include: ${{fromJson(needs.list.outputs.fuzz-tests)}} steps: - - uses: actions/checkout@v6 - - uses: actions/setup-go@v6 + - name: Checkout + uses: actions/checkout@v6 + + - name: Setup Go + uses: actions/setup-go@v6 with: go-version-file: "go.mod" - - uses: shogo82148/actions-go-fuzz/run@v1 + + - name: Fuzz + uses: shogo82148/actions-go-fuzz/run@v1 with: packages: ${{ matrix.package }} fuzz-regexp: ${{ matrix.func }} fuzz-time: "1m" + + notify-on-failure: + name: Notify Slack on failure + needs: [fuzz] + runs-on: ubuntu-4 + if: ${{ failure() }} + env: + RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + steps: + - name: Send Slack notification + uses: slackapi/slack-github-action@v2.1.1 + with: + errors: true + method: chat.postMessage + token: ${{ secrets.SLACK_BOT_TOKEN }} + payload: | + { + "channel": "${{ secrets.SLACK_CHANNEL_ID }}", + "text": "⚠️ Fuzzing job failed! ${{ env.RUN_URL }}" + } + diff --git a/arbstate/inbox_fuzz_test.go b/arbstate/inbox_fuzz_test.go index da67cf2af21..712044ecbc6 100644 --- a/arbstate/inbox_fuzz_test.go +++ b/arbstate/inbox_fuzz_test.go @@ -78,9 +78,6 @@ func FuzzInboxMultiplexer(f *testing.F) { daprovider.KeysetValidate, chaininfo.ArbitrumDevTestChainConfig(), ) - _, err := multiplexer.Pop(context.TODO()) - if err != nil { - panic(err) - } + _, _ = multiplexer.Pop(context.TODO()) }) } diff --git a/changelog/jco-fix-fuzz-workflow.md b/changelog/jco-fix-fuzz-workflow.md new file mode 100644 index 00000000000..81663c214f7 --- /dev/null +++ b/changelog/jco-fix-fuzz-workflow.md @@ -0,0 +1,2 @@ +### Ignored +- Fix fuzz CI workflow YAML syntax errors and fix FuzzInboxMultiplexer panicking on expected errors.