From afbdc87ed93213d2baa2a9d85b5c06bb57c05806 Mon Sep 17 00:00:00 2001 From: John Maguire Date: Wed, 14 Oct 2026 21:30:59 -0400 Subject: [PATCH] Update gvisor and bump to go1.27 (#1940) gvisor's arm64 race-build compare-and-swap (pkg/sync/race_arm64.s) loaded the new value into the register meant for the old one (R1 instead of R2), so it never succeeded. Sleepers could not commit to parking and spun: under -race on arm64 every idle service netstack busied about 14 cores, and TestService's static host lookup of localhost missed its 250ms timeout and stalled for the 30s static_map cadence. Fixed in gvisor 1b2946c4fa. Go 1.27.2 is now the minimum because gvisor's go branch requires it. golangci-lint is bumped to v2.14, the first release that can read go1.27.2 export data. --- .github/workflows/release.yml | 6 +++--- .github/workflows/smoke-extra.yml | 6 +++--- .github/workflows/smoke.yml | 4 ++-- .github/workflows/test.yml | 8 ++++---- go.mod | 7 ++++--- go.sum | 10 ++++++---- 6 files changed, 22 insertions(+), 19 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e9d363c4..0ac04b26 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/setup-go@v7 with: - go-version: '1.26' + go-version: '1.27' check-latest: true - name: Build @@ -40,7 +40,7 @@ jobs: - uses: actions/setup-go@v7 with: - go-version: '1.26' + go-version: '1.27' check-latest: true - name: Build @@ -83,7 +83,7 @@ jobs: - uses: actions/setup-go@v7 with: - go-version: '1.26' + go-version: '1.27' check-latest: true # GitHub holds ARNs, not credentials, and ARNs outlive a rotation diff --git a/.github/workflows/smoke-extra.yml b/.github/workflows/smoke-extra.yml index 8a388f9f..de59a74f 100644 --- a/.github/workflows/smoke-extra.yml +++ b/.github/workflows/smoke-extra.yml @@ -34,7 +34,7 @@ jobs: - uses: actions/setup-go@v7 with: - go-version: '1.26' + go-version: '1.27' check-latest: true - name: add hashicorp source @@ -66,7 +66,7 @@ jobs: - uses: actions/setup-go@v7 with: - go-version: '1.26' + go-version: '1.27' check-latest: true - name: add hashicorp source @@ -92,7 +92,7 @@ jobs: - uses: actions/setup-go@v7 with: - go-version: '1.26' + go-version: '1.27' check-latest: true # WSL2 + Ubuntu so the smoke can run a real linux peer with its own diff --git a/.github/workflows/smoke.yml b/.github/workflows/smoke.yml index 4937d53c..68f69b87 100644 --- a/.github/workflows/smoke.yml +++ b/.github/workflows/smoke.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/setup-go@v7 with: - go-version: '1.26' + go-version: '1.27' check-latest: true - name: Smoke Docker @@ -51,7 +51,7 @@ jobs: - uses: actions/setup-go@v7 with: - go-version: '1.26' + go-version: '1.27' check-latest: true - name: build diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6bde71e8..62566fa4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,7 @@ jobs: - uses: actions/setup-go@v7 with: - go-version: '1.26' + go-version: '1.27' check-latest: true - name: Install goimports @@ -42,7 +42,7 @@ jobs: - name: golangci-lint uses: golangci/golangci-lint-action@v9 with: - version: v2.12 + version: v2.14 test: name: Test ${{ matrix.name }} @@ -87,7 +87,7 @@ jobs: - uses: actions/setup-go@v7 with: - go-version: '1.26' + go-version: '1.27' check-latest: true - name: Build @@ -132,7 +132,7 @@ jobs: - uses: actions/setup-go@v7 with: - go-version: '1.26' + go-version: '1.27' check-latest: true - name: Build ${{ matrix.name }} diff --git a/go.mod b/go.mod index a110b8a2..caa3b502 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/slackhq/nebula -go 1.26.0 +go 1.27.2 require ( dario.cat/mergo v1.0.2 @@ -33,7 +33,7 @@ require ( golang.zx2c4.com/wireguard/windows v1.0.1 google.golang.org/protobuf v1.36.12 gopkg.in/yaml.v3 v3.0.1 - gvisor.dev/gvisor v0.0.0-20240423190808-9d7a357edefe + gvisor.dev/gvisor v0.0.0-20261014193016-04d31b385980 ) require ( @@ -45,5 +45,6 @@ require ( github.com/prometheus/common v0.70.1 // indirect github.com/prometheus/procfs v0.21.1 // indirect github.com/vishvananda/netns v0.0.5 // indirect - golang.org/x/time v0.5.0 // indirect + golang.org/x/exp v0.0.0-20250711185948-6ae5c78190dc // indirect + golang.org/x/time v0.15.0 // indirect ) diff --git a/go.sum b/go.sum index 78189af1..a1a0533f 100644 --- a/go.sum +++ b/go.sum @@ -157,6 +157,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.57.0 h1:3ZVCjf8Ggz7zneR/EHRVx68Ctf+2pmIMP2UFhh9cC6M= golang.org/x/crypto v0.57.0/go.mod h1:Fdz0i5U6CoizGwLda9DttjSk6qlZo25zYNtR+ycvuZA= +golang.org/x/exp v0.0.0-20250711185948-6ae5c78190dc h1:TS73t7x3KarrNd5qAipmspBDS1rkMcgVG/fS1aRb4Rc= +golang.org/x/exp v0.0.0-20250711185948-6ae5c78190dc/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -203,8 +205,8 @@ golang.org/x/term v0.46.0/go.mod h1:+K02xbkittuwc0Am4abfA3Fc+XRGXkvBXNO88NCXPoc= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= +golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -243,5 +245,5 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gvisor.dev/gvisor v0.0.0-20240423190808-9d7a357edefe h1:fre4i6mv4iBuz5lCMOzHD1rH1ljqHWSICFmZRbbgp3g= -gvisor.dev/gvisor v0.0.0-20240423190808-9d7a357edefe/go.mod h1:sxc3Uvk/vHcd3tj7/DHVBoR5wvWT/MmRq2pj7HRJnwU= +gvisor.dev/gvisor v0.0.0-20261014193016-04d31b385980 h1:ribyrTYQ/QYeUIs8x8bVLYwGyepa7RnHLqJzegT5YYk= +gvisor.dev/gvisor v0.0.0-20261014193016-04d31b385980/go.mod h1:pK/dapF5Bf3KGW7/kd5CI5IC4lYh9FMFY1qETAIGLXk=