Skip to content

ci: build with Go 1.27.3 (GO-2026-6809) - #527

Merged
FumingPower3925 merged 1 commit into
mainfrom
ci/go-1.27.3-toolchain
Oct 21, 2026
Merged

FumingPower3925 merged 1 commit into
mainfrom
ci/go-1.27.3-toolchain

Conversation

@FumingPower3925

@FumingPower3925 FumingPower3925 commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Refs the v1.6.0 release run (no issue closed by this PR). Sibling of goceleris/celeris#1102.

The govulncheck job of test.yml fails on main since the vulnerability database update: GO-2026-6809 (crypto/x509), corrected in go1.27.3, reachable on the root module through validation/rfc_scrape.go:405 and on validation/refapp/auth_jwt_csrf (exit 3 with go1.27.2). This moves the toolchain from 1.27.2 to 1.27.3.

WHAT THIS CHANGES FOR THE CLUSTER

The cluster's Go binaries are not built by ansible: ansible/ has no Go role (roles are bun, c, cpp, dbservices, dotnet, java, node, python, rust, zig) and no Go version variable. The benchmark, race, checkptr, nightly, weekend and PR-tier workflows build with actions/setup-go on the runner and ship the result, so the go-version values here ARE the toolchain the cluster benchmarks are built with, and this PR changes them to 1.27.3. In addition, celeris-stress.yml (4 steps) and celeris-stress-cluster.yml use go-version-file: go.mod / celeris/go.mod: after this merges the probatorium side of those stress/soak runs resolves to 1.27.3 through the root go.mod, and the celeris side follows the checked-out celeris go.mod (1.27.3 once celeris#1102 is in the checkout). The final-sha benchmarks and soak must therefore be built with 1.27.3, same as celeris; merge this before dispatching them. No playbook and no host-affecting file is touched.

Changes (version strings only, 37 files)

  • go directive 1.27.2 -> 1.27.3 in 28 go.mod files: root, .github/tools, servers/{celeris,chi,echo,fasthttp,fiber,gin,gnet,gorilla_ws,hertz,iris,nbio,stdhttp}, validation/properties/fieldguard, validation/refapp/{auth_jwt_csrf,auth_session_ratelimit,driver_memcached,driver_postgres,driver_redis,internal/debugvars,kitchen_sink,observability,static_swagger_proxy}, and the four testdata fixtures (tools/stresstally/testdata/samplemod, validation/remote/testdata/splicedemo, validation/testdata/{checkptrdemo,racedemo}), as the earlier 1.27.2 bump (chore(deps): go 1.27.2 in every Go module, dependencies at latest #514) did.
  • every go-version: "1.27.2" in .github/workflows (benchmark-tier, coverage, lint, matrix-{checkptr,nightly,pr,race,weekend}-tier, test): 16 occurrences.

Not changed: go.sum files (go mod tidy leaves the tree identical in all 28 modules); the comment in lint.yml that cites "Go 1.27.2's export data" (historic reason for the golangci-lint floor); the go version go1.27.0 strings in tools/stresstally test fixtures (synthetic host output).

Verification

Run in golang:1.27.3 linux/arm64 (Docker, lane-local caches), with the repo's own CI invocations:

  • go build ./... && go vet ./... clean on the root, every Go module under servers/, every validation/refapp/* and validation/properties/fieldguard
  • go test -count=1 -race ./... and -tags mage on the root module: all packages ok. Two environment artifacts of my container, not of the change: the image has no jq (tools/stresstally shell-script tests need it, the CI runner has it) and I ran as root (one stresstally test refuses to run as root because root can delete read-only module caches). With jq installed and a non-root user, tools/stresstally passes under both tag sets. A validation/remote splice-demo test needed git safe.directory for the non-root user and then passed -count=5 -race.
  • validation/refapp/internal/debugvars go test -race ok
  • mage -compile ok (mage v1.17.2 from the tools module)
  • govulncheck ./... (v1.8.0, the CI-pinned scanner) over the 11 modules the CI job scans: all exit 0. The root module reports 0 affected, and one advisory in a required module that the code does not call (exit 0, so the job passes; I did not identify which advisory it is).
  • actionlint (tools module, v1.7.12) clean

OWED: the CI run on this PR; the cluster itself (nothing dispatched).

@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: goceleris/probatorium/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2529e717-56fe-4c28-a4cd-25f346315b7a
📥 Commits

Reviewing files that changed from the base of the PR and between 018f2d9 and 77db5c8.

⛔ Files ignored due to path filters: 4
  • tools/stresstally/testdata/samplemod/go.mod is excluded by !**/testdata/**
  • validation/remote/testdata/splicedemo/go.mod is excluded by !**/testdata/**
  • validation/testdata/checkptrdemo/go.mod is excluded by !**/testdata/**
  • validation/testdata/racedemo/go.mod is excluded by !**/testdata/**
📒 Files selected for processing: 33
  • .github/tools/go.mod
  • .github/workflows/benchmark-tier.yml
  • .github/workflows/coverage.yml
  • .github/workflows/lint.yml
  • .github/workflows/matrix-checkptr-tier.yml
  • .github/workflows/matrix-nightly-tier.yml
  • .github/workflows/matrix-pr-tier.yml
  • .github/workflows/matrix-race-tier.yml
  • .github/workflows/matrix-weekend-tier.yml
  • .github/workflows/test.yml
  • go.mod
  • servers/celeris/go.mod
  • servers/chi/go.mod
  • servers/echo/go.mod
  • servers/fasthttp/go.mod
  • servers/fiber/go.mod
  • servers/gin/go.mod
  • servers/gnet/go.mod
  • servers/gorilla_ws/go.mod
  • servers/hertz/go.mod
  • servers/iris/go.mod
  • servers/nbio/go.mod
  • servers/stdhttp/go.mod
  • validation/properties/fieldguard/go.mod
  • validation/refapp/auth_jwt_csrf/go.mod
  • validation/refapp/auth_session_ratelimit/go.mod
  • validation/refapp/driver_memcached/go.mod
  • validation/refapp/driver_postgres/go.mod
  • validation/refapp/driver_redis/go.mod
  • validation/refapp/internal/debugvars/go.mod
  • validation/refapp/kitchen_sink/go.mod
  • validation/refapp/observability/go.mod
  • validation/refapp/static_swagger_proxy/go.mod
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
🧰 Additional context used
📚 Code guidelines: 2
CONTRIBUTING.md — configured
.github/PULL_REQUEST_TEMPLATE.md — configured
📓 Path-based instructions: 7
A job that runs on the self-hosted bench cluster (runs-on includes self-hosted, celeris-cluster or msr1) belongs to concurrency group `matrix-tier-cluster` with cancel-in-progress: false.

⚙️ CodeRabbit configuration file

Files:

  • .github/workflows/benchmark-tier.yml
  • .github/workflows/matrix-nightly-tier.yml
  • .github/workflows/matrix-pr-tier.yml
  • .github/workflows/matrix-weekend-tier.yml
  • .github/workflows/matrix-checkptr-tier.yml
  • .github/workflows/lint.yml
  • .github/workflows/coverage.yml
  • .github/workflows/matrix-race-tier.yml
  • .github/workflows/test.yml
This is the validation oracle.

⚙️ CodeRabbit configuration file

Files:

  • validation/refapp/driver_postgres/go.mod
  • validation/refapp/auth_jwt_csrf/go.mod
  • validation/refapp/driver_redis/go.mod
  • validation/refapp/kitchen_sink/go.mod
  • validation/refapp/driver_memcached/go.mod
  • validation/refapp/observability/go.mod
  • validation/properties/fieldguard/go.mod
  • validation/refapp/internal/debugvars/go.mod
  • validation/refapp/auth_session_ratelimit/go.mod
  • validation/refapp/static_swagger_proxy/go.mod
Competitor adapters for the benchmark.

⚙️ CodeRabbit configuration file

Files:

  • servers/fiber/go.mod
  • servers/gnet/go.mod
  • servers/gorilla_ws/go.mod
  • servers/nbio/go.mod
  • servers/echo/go.mod
  • servers/celeris/go.mod
  • servers/stdhttp/go.mod
  • servers/hertz/go.mod
  • servers/chi/go.mod
  • servers/fasthttp/go.mod
  • servers/iris/go.mod
  • servers/gin/go.mod
Negative control for changed checks: PASS if the pull request changes no file under validation/ or report/, no mage_*.go file and no workflow_*_test.go file.

📄 CodeRabbit inference engine (Custom checks)

Files:

  • validation/refapp/driver_postgres/go.mod
  • validation/refapp/auth_jwt_csrf/go.mod
  • validation/refapp/driver_redis/go.mod
  • validation/refapp/kitchen_sink/go.mod
  • validation/refapp/driver_memcached/go.mod
  • validation/refapp/observability/go.mod
  • validation/properties/fieldguard/go.mod
  • validation/refapp/internal/debugvars/go.mod
  • validation/refapp/auth_session_ratelimit/go.mod
  • validation/refapp/static_swagger_proxy/go.mod
Source excerpt: The PR Validation workflow (`.github/workflows/matrix-pr-tier.yml`) executes on the self-hosted bench cluster, so it does not run on every push.

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Files:

  • .github/tools/go.mod
  • .github/workflows/benchmark-tier.yml
  • .github/workflows/matrix-nightly-tier.yml
  • .github/workflows/matrix-pr-tier.yml
  • .github/workflows/matrix-weekend-tier.yml
  • .github/workflows/matrix-checkptr-tier.yml
  • .github/workflows/lint.yml
  • .github/workflows/coverage.yml
  • .github/workflows/matrix-race-tier.yml
  • .github/workflows/test.yml
Source excerpt: The Test and Lint workflows run these; tick what you ran locally: [ ] `go test -race -count=1 ./...`

📄 CodeRabbit inference engine (.github/PULL_REQUEST_TEMPLATE.md)

Files:

  • validation/refapp/driver_postgres/go.mod
  • validation/refapp/auth_jwt_csrf/go.mod
  • servers/fiber/go.mod
  • validation/refapp/driver_redis/go.mod
  • validation/refapp/kitchen_sink/go.mod
  • servers/nbio/go.mod
  • validation/refapp/driver_memcached/go.mod
  • validation/refapp/observability/go.mod
  • servers/echo/go.mod
  • servers/celeris/go.mod
  • validation/refapp/internal/debugvars/go.mod
  • servers/stdhttp/go.mod
  • servers/hertz/go.mod
  • validation/refapp/auth_session_ratelimit/go.mod
  • servers/chi/go.mod
  • servers/fasthttp/go.mod
  • servers/iris/go.mod
  • validation/refapp/static_swagger_proxy/go.mod
  • servers/gin/go.mod
Source excerpt: The Test and Lint workflows run these; tick what you ran locally: [ ] If a workflow changed: `actionlint`, and a gate's new or changed check is shown to pass on good input and fail on bad

📄 CodeRabbit inference engine (.github/PULL_REQUEST_TEMPLATE.md)

Files:

  • .github/workflows/benchmark-tier.yml
  • .github/workflows/matrix-nightly-tier.yml
  • .github/workflows/matrix-pr-tier.yml
  • .github/workflows/matrix-weekend-tier.yml
  • .github/workflows/matrix-checkptr-tier.yml
  • .github/workflows/lint.yml
  • .github/workflows/coverage.yml
  • .github/workflows/matrix-race-tier.yml
  • .github/workflows/test.yml
🧠 Learnings: 3
📓 Common learnings
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: .github/PULL_REQUEST_TEMPLATE.md:0-0
Timestamp: 2026-10-13T08:27:15.437Z
Learning: Applies to validation/refapp/auth_jwt_csrf/go.mod : Source excerpt:
## Test Plan

The Test and Lint workflows run these; tick what you ran locally:

- [ ] `go test -race -count=1 ./...` in the root module, and in every changed module under `servers/` or `validation/refapp/`
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: .github/PULL_REQUEST_TEMPLATE.md:0-0
Timestamp: 2026-10-13T08:27:15.437Z
Learning: Source excerpt:
## Test Plan

The Test and Lint workflows run these; tick what you ran locally:

- [ ] `go vet ./...`, `golangci-lint run` and `gofmt -l .` are clean, and `mage -compile /tmp/mage-check` succeeds
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: .github/PULL_REQUEST_TEMPLATE.md:0-0
Timestamp: 2026-10-13T08:27:15.437Z
Learning: Applies to validation/refapp/static_swagger_proxy/go.mod : Source excerpt:
## Test Plan

The Test and Lint workflows run these; tick what you ran locally:

- [ ] `go test -race -count=1 ./...` in the root module, and in every changed module under `servers/` or `validation/refapp/`
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: .github/PULL_REQUEST_TEMPLATE.md:0-0
Timestamp: 2026-10-13T08:27:15.437Z
Learning: Applies to validation/refapp/driver_memcached/go.mod : Source excerpt:
## Test Plan

The Test and Lint workflows run these; tick what you ran locally:

- [ ] `go test -race -count=1 ./...` in the root module, and in every changed module under `servers/` or `validation/refapp/`
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: .github/PULL_REQUEST_TEMPLATE.md:0-0
Timestamp: 2026-10-13T08:27:15.437Z
Learning: Applies to validation/refapp/driver_postgres/go.mod : Source excerpt:
## Test Plan

The Test and Lint workflows run these; tick what you ran locally:

- [ ] `go test -race -count=1 ./...` in the root module, and in every changed module under `servers/` or `validation/refapp/`
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: CONTRIBUTING.md:0-0
Timestamp: 2026-10-13T08:27:12.013Z
Learning: Source excerpt:
# Contributing

## How changes get merged

The same rule applies across the goceleris repositories:

- Every change lands through a pull request against `main`; nothing is pushed to `main` directly.
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: .github/PULL_REQUEST_TEMPLATE.md:0-0
Timestamp: 2026-10-13T08:27:15.437Z
Learning: Applies to .github/workflows/matrix-weekend-tier.yml : Source excerpt:
## Test Plan

The Test and Lint workflows run these; tick what you ran locally:

- [ ] If a workflow changed: `actionlint`, and a gate's new or changed check is shown to pass on good input and fail on bad
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: .github/PULL_REQUEST_TEMPLATE.md:0-0
Timestamp: 2026-10-13T08:27:15.437Z
Learning: Applies to servers/stdhttp/go.mod : Source excerpt:
## Test Plan

The Test and Lint workflows run these; tick what you ran locally:

- [ ] `go test -race -count=1 ./...` in the root module, and in every changed module under `servers/` or `validation/refapp/`
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: CONTRIBUTING.md:0-0
Timestamp: 2026-10-13T08:27:12.013Z
Learning: Source excerpt:
# Contributing

## PRs

One wave per branch / PR. Branch naming: `feat/<short-slug>`, `fix/<short-slug>`. Each PR description should reference the wave issue it closes.
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: .github/PULL_REQUEST_TEMPLATE.md:0-0
Timestamp: 2026-10-13T08:27:15.437Z
Learning: Applies to .github/workflows/matrix-nightly-tier.yml : Source excerpt:
## Test Plan

The Test and Lint workflows run these; tick what you ran locally:

- [ ] If a workflow changed: `actionlint`, and a gate's new or changed check is shown to pass on good input and fail on bad
📚 Learning: 2026-10-13T08:27:15.437Z
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: .github/PULL_REQUEST_TEMPLATE.md:0-0
Timestamp: 2026-10-13T08:27:15.437Z
Learning: Applies to .github/workflows/coverage.yml : Source excerpt:
## Test Plan

The Test and Lint workflows run these; tick what you ran locally:

- [ ] If a workflow changed: `actionlint`, and a gate's new or changed check is shown to pass on good input and fail on bad

Applied to files:

  • .github/workflows/coverage.yml
📚 Learning: 2026-10-13T08:27:15.437Z
Learnt from: CR
Repo: goceleris/probatorium PR: 0
File: .github/PULL_REQUEST_TEMPLATE.md:0-0
Timestamp: 2026-10-13T08:27:15.437Z
Learning: Applies to .github/workflows/matrix-race-tier.yml : Source excerpt:
## Test Plan

The Test and Lint workflows run these; tick what you ran locally:

- [ ] If a workflow changed: `actionlint`, and a gate's new or changed check is shown to pass on good input and fail on bad

Applied to files:

  • .github/workflows/matrix-race-tier.yml
🔀 Multi-repo context goceleris/celeris, goceleris/loadgen

Linked repositories findings

goceleris/celeris

  • Inspected commit 2f55224 (main), which already declares Go 1.27.3 in the root module and CI configuration. No cross-repository API changes were found. [::goceleris/celeris::go.mod:3] [::goceleris/celeris::.github/workflows/ci.yml:32]

goceleris/loadgen

  • Inspected the branch for open PR #115 at commit b1fc357. Its root module, tools module, workflows, and integration test-server module all already use Go 1.27.3, so the celeris toolchain bump is aligned with this downstream repository. [::goceleris/loadgen::go.mod:3] [::goceleris/loadgen::.github/workflows/ci.yml:22] [::goceleris/loadgen::.github/tools/go.mod:8]
  • The integration test server separately pins released celeris v1.5.11; no changed celeris API or interface is consumed there. [::goceleris/loadgen::internal/integrationtest/testserver/go.mod:3-5]
📝 Summary

Summary by CodeRabbit

  • Chores
    • Updated the project and validation components to require Go 1.27.3.
    • Aligned automated benchmark, coverage, lint, testing, and validation workflows with Go 1.27.3.
    • Maintained consistent toolchain usage across supported server implementations and development modules.

Go version declarations changed from 1.27.2 to 1.27.3 across module files and GitHub Actions workflows.

Changes: Go version alignment

Layer / File(s) Summary
Module Go directives
.github/tools/go.mod, go.mod, servers/*/go.mod, validation/properties/fieldguard/go.mod, validation/refapp/.../go.mod
The Go version directive changed to 1.27.3 in the root, tools, server, and validation modules.
Workflow Go toolchains
.github/workflows/{benchmark-tier,coverage,lint,matrix-*,test}.yml
Workflow jobs now configure Go 1.27.3 for benchmark, coverage, lint, matrix, and test tasks.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~8 minutes

Merge Risk: ⚪ Minimal · up to 77db5

The Go version update is consistently applied across modules and CI workflows, with no identified merge-blocking risk.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title uses the required conventional-commit format with type ci and accurately describes the Go 1.27.3 toolchain update and vulnerability reference.
Description check Passed The description directly explains the Go toolchain update, vulnerability remediation, affected workflows and modules, verification, and remaining CI status.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Negative Control For Changed Checks Passed Validation paths changed, but only their go.mod version directives changed; no check implementation changed. The description names the relevant govulncheck negative control: GO-2026-6809 causes exit 3…
Full details: Negative Control For Changed Checks

Explanation

Validation paths changed, but only their go.mod version directives changed; no check implementation changed. The description names the relevant govulncheck negative control: GO-2026-6809 causes exit 3 with Go 1.27.2, while govulncheck exits 0 with Go 1.27.3. The diff contains no report/, mage_.go, or workflow__test.go changes.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@FumingPower3925
FumingPower3925 marked this pull request as ready for review October 21, 2026 02:36
@FumingPower3925
FumingPower3925 merged commit 3d36cd0 into main Oct 21, 2026
46 checks passed
@FumingPower3925
FumingPower3925 deleted the ci/go-1.27.3-toolchain branch October 21, 2026 03:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant