From 63c4172dd9fdf54142689c83206037c3b3db5969 Mon Sep 17 00:00:00 2001 From: erio Date: Thu, 9 Apr 2026 22:38:39 +0800 Subject: [PATCH] fix(ci): upgrade Go to 1.26.2 for security fixes, fix flaky WS test - Upgrade Go from 1.26.1 to 1.26.2 in go.mod and Dockerfile to fix govulncheck findings (GO-2026-4947, GO-2026-4946, GO-2026-4870, etc.) - Fix flaky PassthroughModeRelaysByCaddyAdapter test: tolerate StatusNormalClosure error from server after client closes connection --- Dockerfile | 2 +- backend/go.mod | 2 +- .../service/openai_ws_forwarder_ingress_session_test.go | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index a16eb958f2..890bda0bfa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ # ============================================================================= ARG NODE_IMAGE=node:24-alpine -ARG GOLANG_IMAGE=golang:1.26.1-alpine +ARG GOLANG_IMAGE=golang:1.26.2-alpine ARG ALPINE_IMAGE=alpine:3.21 ARG POSTGRES_IMAGE=postgres:18-alpine ARG GOPROXY=https://goproxy.cn,direct diff --git a/backend/go.mod b/backend/go.mod index e08f6b920e..7f11614a5d 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -1,6 +1,6 @@ module github.com/Wei-Shaw/sub2api -go 1.26.1 +go 1.26.2 require ( entgo.io/ent v0.14.5 diff --git a/backend/internal/service/openai_ws_forwarder_ingress_session_test.go b/backend/internal/service/openai_ws_forwarder_ingress_session_test.go index c527f2ebec..6bf9a9ff50 100644 --- a/backend/internal/service/openai_ws_forwarder_ingress_session_test.go +++ b/backend/internal/service/openai_ws_forwarder_ingress_session_test.go @@ -413,7 +413,12 @@ func TestOpenAIGatewayService_ProxyResponsesWebSocketFromClient_PassthroughModeR select { case serverErr := <-serverErrCh: - require.NoError(t, serverErr) + // After normal client close, the server goroutine may receive the close frame + // as an error — this is expected behavior, not a test failure. + if serverErr != nil { + require.Contains(t, serverErr.Error(), "StatusNormalClosure", + "server error should only be a normal close frame, got: %v", serverErr) + } case <-time.After(5 * time.Second): t.Fatal("等待 passthrough websocket 结束超时") }