From f3e84d54a9c869d8baf53bab02b8bc2c81bd1dfb Mon Sep 17 00:00:00 2001 From: Feng Ruohang Date: Sat, 7 Nov 2026 16:08:40 +0800 Subject: [PATCH] ci: run the logger target lifecycle test under the race detector and document the dev tag TestDynamicWebhookOutlivesConfigContext (0fa4a8c50) exercises the goroutine lifecycle of webhook, audit and Kafka targets across a peer config reload. It ran in CI only in the plain test-cmd job, outside every race group. Add a race step for it next to the other lifecycle groups; it takes about 35s locally under -race. The dev build tag in make test, make install-race and several race steps selects nothing: no file in this repository or its dependencies carries a dev build constraint, and kqueue only changes the notify backend on BSD and macOS. Say so in the Makefile and the workflow instead of removing the tag, so that the documented command lines keep working. No other job changes. Co-Authored-By: Claude Fable 5.1 Signed-off-by: Feng Ruohang --- .github/workflows/go.yml | 9 +++++++++ Makefile | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 79ea533b5..97e519ee8 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -96,6 +96,12 @@ jobs: - name: Run multi-pool delete consistency tests under race detector run: go test -race ./cmd -run '^Test(Pools(Delete|BulkDelete|RetiringCopyPreservesSharedTierObject)|BulkDeleteQuorumEvidence)' -count=1 -timeout=5m + # Build tags: kqueue selects the kqueue backend of rjeczalik/notify on + # BSD and macOS and changes nothing on Linux. dev came with upstream's + # 2024-06 Makefile change for development builds; no file in this + # repository or its dependencies carries a dev build constraint, so it + # selects nothing and is kept only so that the documented command + # lines (make test, make install-race) stay valid. - name: Run lifecycle expiry and native restore tests under race detector env: MINIO_API_REQUESTS_MAX: "10000" @@ -128,6 +134,9 @@ jobs: MINIO_API_REQUESTS_MAX: "10000" run: go test -race -tags kqueue,dev ./cmd ./internal/grid ./internal/ioutil -run '^Test(StorageTimeout|StorageRollback|StoragePrerelease|MaintenancePartialFailedOverwriteAvailability|SingleRequest|WithDeadline)' -count=1 -timeout=5m + - name: Run logger target lifecycle tests under race detector + run: go test -race ./cmd -run '^TestDynamicWebhookOutlivesConfigContext' -count=1 -timeout=5m + - name: Compile deferred consistency diagnostics run: go test -tags kqueue,dev,consistency_strict ./cmd -run '^$' diff --git a/Makefile b/Makefile index f9c1a705e..5b5a4d503 100644 --- a/Makefile +++ b/Makefile @@ -73,6 +73,11 @@ lint-fix: getdeps ## runs golangci-lint suite of linters with automatic fixes @$(GOLANGCI) run --build-tags kqueue --timeout=10m --config ./.golangci.yml --fix check: test +# -tags kqueue,dev: kqueue selects the kqueue backend of rjeczalik/notify on +# BSD and macOS (no-op on Linux); dev came with upstream's 2024-06 change for +# development builds and no file in this repository or its dependencies +# carries a dev build constraint, so it selects nothing. Kept for the +# documented command lines; .github/workflows/go.yml carries the same note. test: verifiers build ## builds Silo, runs linters, tests @echo "Running unit tests" @MINIO_API_REQUESTS_MAX=10000 CGO_ENABLED=0 go test -v -tags kqueue,dev ./...