Skip to content

ci: build with Go 1.27.2 and take x/net v0.60.0, so the Vulnerability Check passes again - #110

Merged
FumingPower3925 merged 2 commits into
mainfrom
ci/go-1.27.2-toolchain-loadgen
Oct 9, 2026
Merged

FumingPower3925 merged 2 commits into
mainfrom
ci/go-1.27.2-toolchain-loadgen

Conversation

@FumingPower3925

@FumingPower3925 FumingPower3925 commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

The Vulnerability Check job goes red on main's next CI run and on any PR, because Go advisories published after the last green runs now apply to what CI builds with (Go 1.27.0) and to the golang.org/x/net the testserver module pins.

What govulncheck says on main (b6c0280), as CI runs it

Pinned scanner govulncheck@v1.8.0, GOTOOLCHAIN=go1.27.0, govulncheck ./... in the two modules the job scans:

  • root module: exit 3, 1 finding (GO-2026-6607, crypto/tls, Go standard library).
  • internal/integrationtest/testserver: exit 3, 5 findings: GO-2026-6613 (net/http, standard library) and GO-2026-6603, -6611, -6612, -6617 (reached through golang.org/x/net@v0.58.0 and the standard library's bundled http2).

What this changes

  • Every go-version: "1.27.0" in .github/workflows/*.yml becomes "1.27.2" (8 lines in 4 files). The go directives in the go.mod files stay at 1.27.0, so the minimum Go for consumers does not change.

  • golang.org/x/net v0.58.0 to v0.60.0 in internal/integrationtest/testserver (indirect; x/sys v0.47.0 to v0.48.0 and x/text v0.41.0 to v0.42.0 follow by minimum version selection).

  • golang.org/x/net v0.59.0 to v0.60.0 in the root module (direct). The root scan was already clean on call reachability under 1.27.2, but v0.59.0 is in the advisory range at module level, so it is taken here too.

  • golangci-lint v2.13 to v2.14 in the Lint job. With Go 1.27.2 the prebuilt v2.13.2 binary (built with go1.27.0) fails typecheck on every stdlib import (export data version 5 is greater than maximum supported version 4); v2.14.0 (also built with go1.27.0) reads 1.27.2 export data and reports 0 issues on this repo (checked locally, both versions, GOTOOLCHAIN=go1.27.2; v2.13.2 on go1.27.0 is also clean). CONTRIBUTING.md follows (golangci-lint v2.14+, CI builds with 1.27.2).

Evidence (this branch, GOTOOLCHAIN=go1.27.2, govulncheck@v1.8.0)

  • govulncheck ./..., exit 0, "No vulnerabilities found": root module, and internal/integrationtest/testserver.
  • go build ./... and go vet ./... pass in both modules; go mod verify passes in both.
  • .github/tools (not scanned by CI; it only holds a tool directive): govulncheck github.com/rhysd/actionlint/cmd/actionlint exits 0, 0 called vulnerabilities.
  • CI on this PR runs the same steps with the new toolchain.

Refs goceleris/celeris#957 (same fix for celeris).

@FumingPower3925 FumingPower3925 added security Security-related dependencies Pull requests that update a dependency file labels Oct 9, 2026
@coderabbitai

coderabbitai Bot commented Oct 9, 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/loadgen/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 188b5065-9180-49e6-a435-7ed77fcc2366

📥 Commits

Reviewing files that changed from the base of the PR and between b6c0280 and 06d5941.


⛔ Files ignored due to path filters (2)
  • go.sum is excluded by !**/*.sum
  • internal/integrationtest/testserver/go.sum is excluded by !**/*.sum

📒 Files selected for processing (7)
  • .github/workflows/ci.yml
  • .github/workflows/codspeed.yml
  • .github/workflows/coverage.yml
  • .github/workflows/release.yml
  • CONTRIBUTING.md
  • go.mod
  • internal/integrationtest/testserver/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 10 included reviews per hour; 8 remain after this review.


📜 Recent review details
⏰ Context from checks skipped due to timeout. (1)
  • GitHub Check: Benchmarks (CodSpeed walltime, arm64 macro runner)

🧰 Additional context used
📓 Path-based instructions (2)
A nested module that pins its own celeris and is spawned as a subprocess by the integration tests.

⚙️ CodeRabbit configuration file

Files:

  • internal/integrationtest/testserver/go.mod

Every uses: is pinned to a full commit SHA with a version comment (the repository requires SHA pinning).

⚙️ CodeRabbit configuration file

Files:

  • .github/workflows/coverage.yml
  • .github/workflows/release.yml
  • .github/workflows/codspeed.yml
  • .github/workflows/ci.yml



🔇 Additional comments (7)
.github/workflows/ci.yml (1)

22-22: LGTM!

Also applies to: 25-25, 51-51, 74-74, 93-93


.github/workflows/codspeed.yml (1)

85-85: LGTM!


.github/workflows/coverage.yml (1)

38-38: LGTM!


.github/workflows/release.yml (1)

74-74: LGTM!

Also applies to: 144-144


CONTRIBUTING.md (1)

11-12: LGTM!


go.mod (1)

7-7: LGTM!


internal/integrationtest/testserver/go.mod (1)

8-10: LGTM!





📝 Summary

Summary by CodeRabbit

  • Chores
    • Updated the Go and lint tool versions used for builds, tests, security checks, benchmarks, and releases.
    • Refreshed supporting network, system, and text libraries.
    • Updated contributor setup guidance to accept Go 1.27.0 or later and require golangci-lint v2.14 or later.

Walkthrough

CI workflows now use Go 1.27.2, and the Lint job uses golangci-lint v2.14. Contributor prerequisites and module dependency versions are also updated.

Changes

Version updates

Layer / File(s) Summary
Workflow and contributor tool versions
.github/workflows/ci.yml, .github/workflows/codspeed.yml, .github/workflows/coverage.yml, .github/workflows/release.yml, CONTRIBUTING.md
CI workflows use Go 1.27.2. The Lint job uses golangci-lint v2.14. Contributor prerequisites specify Go 1.27.0 or newer and golangci-lint v2.14+.
Module dependency versions
go.mod, internal/integrationtest/testserver/go.mod
The root module updates golang.org/x/net to v0.60.0. The integration test server module updates golang.org/x/net to v0.60.0, golang.org/x/sys to v0.48.0, and golang.org/x/text to v0.42.0.

Priority: ➖ Normal

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

Change: Other

Suggested labels: dx


Merge Risk: ⚪ Minimal · up to 06d59

The toolchain updates match the documented prerequisites. The observed test failure reflects loopback networking unavailable in the inspection environment, not an established regression from this change; no concrete merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check Passed The title uses the required Conventional Commit format with the valid type ci: and clearly describes the Go, x/net, and vulnerability-check updates.
Description check Passed The description directly explains the vulnerability findings, toolchain and dependency updates, lint changes, and validation results.
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.
Readme Cluster-Bench Contract Passed The reviewed diff changes only CI workflow versions, CONTRIBUTING.md, and Go module checksums/dependencies. It does not change results.go, any nested Result type, cmd/loadgen/main.go, or README.md. Th…


✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR


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

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

@codecov

codecov Bot commented Oct 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@FumingPower3925
FumingPower3925 marked this pull request as ready for review October 9, 2026 12:56
@codspeed

codspeed Bot commented Oct 9, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 40.45%

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

❌ 1 regressed benchmark
✅ 18 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
❌ 1024workers 8.6 µs 14.4 µs -40.45%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing ci/go-1.27.2-toolchain-loadgen (06d5941) with main (b6c0280)

Open in CodSpeed

@FumingPower3925

Copy link
Copy Markdown
Contributor Author

CodSpeed reports one regressed benchmark (-40.45%) with its own warning "Different runtime environments detected": this PR changes the Go toolchain the benchmarks are built with (1.27.0 to 1.27.2), so the comparison against main's baseline mixes toolchains. The same check swung 21x on identical code earlier (loadgen#109), and it is advisory (not a required check). Every required check is green on this head; merging so the Vulnerability Check passes again. If the next main run still shows the benchmark moving on the new baseline, that is a real signal and loadgen#109 is where it gets looked at.

@FumingPower3925
FumingPower3925 merged commit e94d734 into main Oct 9, 2026
12 of 13 checks passed
@FumingPower3925
FumingPower3925 deleted the ci/go-1.27.2-toolchain-loadgen branch October 9, 2026 13:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file security Security-related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant