-
Notifications
You must be signed in to change notification settings - Fork 18.3k
net/http/pprof: avoid panic with user-defined "GET /" route #65791
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This PR (HEAD: afc49af) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/565176. Important tips:
|
Message from Gopher Robot: Patch Set 1: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Matteo Vaccari: Patch Set 1: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Jonathan Amsterdam: Patch Set 2: (4 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
This PR (HEAD: 8939266) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/565176. Important tips:
|
This PR (HEAD: fa1683a) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/565176. Important tips:
|
Message from Matteo Vaccari: Patch Set 3: (5 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Jonathan Amsterdam: Patch Set 4: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Matteo Vaccari: Patch Set 4: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Jonathan Amsterdam: Patch Set 4: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Matteo Vaccari: Patch Set 4: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Jes Cok: Patch Set 4: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
With the new routing style in go 1.22, declaring http.Handle("GET /", h) generates a conflict with route "/debug/pprof/" and the others declared in the net/http/pprof package. You get an error such as: panic: pattern "GET /" (registered at .../pprof.go:94): GET / matches fewer methods than /debug/pprof/, but has a more general path pattern [recovered] This patch prevents that error. Adding GET is correct because no other method makes sense with the /debug/pprof routes. However, a tool using any method other than GET will break. We preserve the traditional behaviour when GODEBUG=httpmuxgo121=1 is specified. Updates golang#65723
Message from Jonathan Amsterdam: Patch Set 4: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
This PR (HEAD: 35e4012) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/565176. Important tips:
|
Message from Matteo Vaccari: Patch Set 4: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Jonathan Amsterdam: Patch Set 6: Code-Review+2 Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Jonathan Amsterdam: Patch Set 6: Commit-Queue+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Go LUCI: Patch Set 6: Dry run: CV is trying the patch. Bot data: {"action":"start","triggered_at":"2024-02-22T14:17:16Z","revision":"70480d8bd38916404064b70baa4403fb6482ae97"} Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Jonathan Amsterdam: Patch Set 6: -Commit-Queue Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Go LUCI: Patch Set 6: This CL has passed the run Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Go LUCI: Patch Set 6: LUCI-TryBot-Result+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
Message from Carlos Amedee: Patch Set 6: Code-Review+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
With the new routing style in go 1.22, declaring http.Handle("GET /", h) generates a conflict with route "/debug/pprof/" and the others declared in the net/http/pprof package. You get an error such as: panic: pattern "GET /" (registered at .../pprof.go:94): GET / matches fewer methods than /debug/pprof/, but has a more general path pattern This patch prevents that error. Adding GET is correct because no other method makes sense with the /debug/pprof routes. However, a tool using any method other than GET will break. We preserve the traditional behaviour when GODEBUG=httpmuxgo121=1 is specified. Updates #65723 Change-Id: I49c21f5f3e802ad7538062d824354b2e4d8a800e GitHub-Last-Rev: 35e4012 GitHub-Pull-Request: #65791 Reviewed-on: https://go-review.googlesource.com/c/go/+/565176 LUCI-TryBot-Result: Go LUCI <[email protected]> Reviewed-by: Jonathan Amsterdam <[email protected]> Reviewed-by: Carlos Amedee <[email protected]>
Message from Jonathan Amsterdam: Patch Set 6: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/565176. |
This PR is being closed because golang.org/cl/565176 has been merged. |
With the new routing style in go 1.22, declaring
generates a conflict with route "/debug/pprof/" and the others declared in
the net/http/pprof package. You get an error such as:
panic: pattern "GET /" (registered at .../pprof.go:94): GET / matches
fewer methods than /debug/pprof/, but has a more general path pattern
This patch prevents that error. Adding GET is correct because no other
method makes sense with the /debug/pprof routes. However, a tool using any
method other than GET will break.
We preserve the traditional behaviour when GODEBUG=httpmuxgo121=1 is
specified.
Updates #65723