Known issue: Caddy build with grpc plugin and dns server type causes a Go panic

Hi,

This is more of an announcement

It has been established that by downloading a version of Caddy where both the dns server type and grpc plugin is chosen causes a panic:

panic: http: multiple registrations for /debug/requests

An issue has been logged inside the caddy-grpc project.

The reason is because both dns and grpc use the Go gRPC package
which imports “golang.org/x/net/trace” in it’s trace.go file which in turn import the "golang.org/x/net/trace" package. The trace package has an init function that registers routes for the default http mux. This is where the panic occurs.

I will need to figure out if there’s a way (or even possible) to change this behaviour from within my plugin. For now a short term solution would be disable either plugin if you want to use the other one. (Obviously not ideal for long term or in instances where both plugins need to be used)

Pieter

2 Likes

Just came here to say this. I disabled grpc plugin and it works fine now.

1 Like

It’s been established that the problem is caused because of vendoring in the CoreDNS repo - unfortunately it’s nothing I can do from the gRPC plugin side.