operator-framework / operator-framework/ansible-operator-plugins
Error while proxying request - [http2: Transport received Server's graceful shutdown GOAWAY]
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 12
- Forks
- 33
- PR merge metrics
- No merged PRs in 30d
Description
Bug Report
What did you do?
Observe Operator logs
What did you expect to see?
No error messages
What did you see instead? Under which circumstances?
{
"level":"error",
"ts":"2025-11-09T14:44:53Z",
"logger":"proxy",
"msg":"Error while proxying request",
"error":"http2: Transport: cannot retry err [http2: Transport received Server's graceful shutdown GOAWAY] after Request.Body was written; define Request.GetBody to avoid this error",
"stacktrace":"
github.com/operator-framework/ansible-operator-plugins/internal/ansible/proxy.(*responder).Error
ansible-operator-plugins/internal/ansible/proxy/kubectl.go:164
net/http/httputil.(*ReverseProxy).ServeHTTP
/opt/hostedtoolcache/go/1.24.3/x64/src/net/http/httputil/reverseproxy.go:486
k8s.io/apimachinery/pkg/util/proxy.(*UpgradeAwareHandler).ServeHTTP
/home/runner/go/pkg/mod/k8s.io/apimachinery@v0.33.2/pkg/util/proxy/upgradeaware.go:293
github.com/operator-framework/ansible-operator-plugins/internal/ansible/proxy.newServer.stripLeaveSlash.func1
ansible-operator-plugins/internal/ansible/proxy/kubectl.go:276
net/http.HandlerFunc.ServeHTTP
/opt/hostedtoolcache/go/1.24.3/x64/src/net/http/server.go:2294
net/http.(*ServeMux).ServeHTTP
/opt/hostedtoolcache/go/1.24.3/x64/src/net/http/server.go:2822
github.com/operator-framework/ansible-operator-plugins/internal/ansible/proxy.Run.removeAuthorizationHeader.func3
ansible-operator-plugins/internal/ansible/proxy/proxy.go:282
net/http.HandlerFunc.ServeHTTP
/opt/hostedtoolcache/go/1.24.3/x64/src/net/http/server.go:2294
github.com/operator-framework/ansible-operator-plugins/internal/ansible/proxy.(*cacheResponseHandler).ServeHTTP
ansible-operator-plugins/internal/ansible/proxy/cache_response.go:150
net/http.serverHandler.ServeHTTP
/opt/hostedtoolcache/go/1.24.3/x64/src/net/http/server.go:3301
net/http.(*conn).serve
/opt/hostedtoolcache/go/1.24.3/x64/src/net/http/server.go:2102"
}
Environment
Kubernetes cluster type:
OpenShift 4.18.25
$ operator-sdk version
ansible-operator version: "v1.41.0", commit: "8e923f25256c2b64c85a2c9dfabd157e8f880ea8", kubernetes version: "v1.32.0", go version: "go1.24.4", GOOS: "linux", GOARCH: "amd64"
$ go version (if language is Go)
1.24.4
$ kubectl version
1.29.7
Possible Solution
The client should possibly handle GOAWAY more gracefully.
Additional context
This appears as part of
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the proxy error through internal/ansible/proxy/kubectl.go, especially responder.Error and newServer, then inspect the surrounding ReverseProxy and cache response handling shown in the stack trace. Reproduce the HTTP/2 GOAWAY scenario if possible and define completion as handling the graceful shutdown without emitting the observed proxy error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100