Skip to content
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

Panic error when resolving 2.0.0.127.zen.spamhaus.org. #29

Open
webaddicto opened this issue Feb 23, 2022 · 3 comments
Open

Panic error when resolving 2.0.0.127.zen.spamhaus.org. #29

webaddicto opened this issue Feb 23, 2022 · 3 comments
Labels
bug Something isn't working

Comments

@webaddicto
Copy link

What happened:

When I try to resolve "2.0.0.127.zen.spamhaus.org." with dig:

dig a 2.0.0.127.zen.spamhaus.org.

I see CoreDNS outputs this:

[ERROR] Recovered from panic in server: "dns://:53" runtime error: index out of range [0] with length 0

So I added "debug" plugin and here is the result:

panic: runtime error: index out of range [0] with length 0
goroutine 88 [running]:
github.com/coredns/coredns/plugin/cache.key({0xc0003743c0, 0x707b8f}, 0x4aa8c5, 0x0)
        /root/coredns2/coredns/plugin/cache/cache.go:80 +0x85
github.com/coredns/coredns/plugin/cache.(*ResponseWriter).WriteMsg(0xc0000e4840, 0xc0006158c0)
        /root/coredns2/coredns/plugin/cache/cache.go:151 +0xd9
github.com/coredns/unbound.(*Unbound).ServeDNS(0xc000100410, {0x22c7598, 0xc000661290}, {0x22f96a8, 0xc0000e4840}, 0xc0006157a0)
        /root/go/pkg/mod/github.com/coredns/unbound@v0.0.7/unbound.go:140 +0x538
github.com/coredns/coredns/plugin.NextOrFailure({0x1ec14d6, 0xc00006e800}, {0x22aa560, 0xc000100410}, {0x22c7598, 0xc000661290}, {0x22f96a8, 0xc0000e4840}, 0x1e57660)
        /root/coredns2/coredns/plugin/plugin.go:80 +0x264
github.com/coredns/coredns/plugin/cache.(*Cache).doRefresh(0xc00020bb80, {0x22c7598, 0xc000661290}, {0xc0006157a0, {0x22f9910, 0xc000383240}, {0x0, 0x0}, 0x1000, 0x0, ...}, ...)
        /root/coredns2/coredns/plugin/cache/handler.go:77 +0xd9
github.com/coredns/coredns/plugin/cache.(*Cache).ServeDNS(0xc00020bb80, {0x22c7598, 0xc000661290}, {0x22f9910, 0xc000383240}, 0x0)
        /root/coredns2/coredns/plugin/cache/handler.go:43 +0x94e
github.com/coredns/coredns/plugin.NextOrFailure({0x1ebff91, 0x1}, {0x22a9e80, 0xc00020bb80}, {0x22c7598, 0xc000661290}, {0x22f9910, 0xc000383240}, 0x1c9eca0)
        /root/coredns2/coredns/plugin/plugin.go:80 +0x264
github.com/coredns/coredns/plugin/log.Logger.ServeDNS({{0x22a9e80, 0xc00020bb80}, {0xc00047e510, 0x1, 0x1}, {}}, {0x22c7598, 0xc000661290}, {0x22f9a18, 0xc000120b10}, ...)
        /root/coredns2/coredns/plugin/log/log.go:36 +0x346
github.com/coredns/coredns/core/dnsserver.(*Server).ServeDNS(0xc00036e4e0, {0x22c7598, 0xc000661290}, {0x22f9a18, 0xc000120b10}, 0xc000615710)
        /root/coredns2/coredns/core/dnsserver/server.go:280 +0x64d
github.com/coredns/coredns/core/dnsserver.(*Server).ServePacket.func1({0x22fb4e8, 0xc0001fcc00}, 0xc000615701)
        /root/coredns2/coredns/core/dnsserver/server.go:128 +0x9b
github.com/miekg/dns.HandlerFunc.ServeDNS(0xc0000e7000, {0x22fb4e8, 0xc0001fcc00}, 0xc000615710)
        /root/go/pkg/mod/github.com/miekg/dns@v1.1.46/server.go:37 +0x2f
github.com/miekg/dns.(*Server).serveDNS(0xc000618900, {0xc0000e7000, 0x43, 0x0}, 0xc0001fcc00)
        /root/go/pkg/mod/github.com/miekg/dns@v1.1.46/server.go:659 +0x43e
github.com/miekg/dns.(*Server).serveUDPPacket(0xc000618900, 0x0, {0xc0000e7000, 0x43, 0x200}, {0x22ecad0, 0xc0003520f0}, 0xc0005cb160, {0x0, 0x0})
        /root/go/pkg/mod/github.com/miekg/dns@v1.1.46/server.go:603 +0x1dc
created by github.com/miekg/dns.(*Server).serveUDP
        /root/go/pkg/mod/github.com/miekg/dns@v1.1.46/server.go:533 +0x485

This is the Corefile I am using:

.:53 {
    unbound
    cache    
    log
}

What you expected to happen:

It should not show the panic error.

But additionally, it should show an answer same as by using 1.1.1.1:

; <<>> DiG 9.16.22-Debian <<>> A 2.0.0.127.zen.spamhaus.org.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53566
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;2.0.0.127.zen.spamhaus.org.    IN      A

;; ANSWER SECTION:
2.0.0.127.zen.spamhaus.org. 60  IN      A       127.0.0.2
2.0.0.127.zen.spamhaus.org. 60  IN      A       127.0.0.10
2.0.0.127.zen.spamhaus.org. 60  IN      A       127.0.0.4

;; Query time: 39 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Wed Feb 23 00:47:17 UTC 2022
;; MSG SIZE  rcvd: 103

Instead it shows nothing (probably due to the crash), and sometimes I see this in the log:

[INFO] XXXXXXX:51176 - 61915 "A IN 2.0.0.127.zen.spamhaus.org. udp 67 false 4096" NXDOMAIN qr,rd,ra 136 0.755868575s

It is not able to resolve the DNSBL address?

How to reproduce it (as minimally and precisely as possible):

Use same Corefile as shown above and then use dig like this:

dig a 2.0.0.127.zen.spamhaus.org.

It should show the panic error, sometimes it shows the NXDOMAIN so just retry a few times.

Anything else we need to know?:

Environment:

Debian GNU/Linux 11 (bullseye)
CoreDNS-1.9.0
linux/amd64, go1.17.7

@webaddicto webaddicto added the bug Something isn't working label Feb 23, 2022
@chrisohaver chrisohaver transferred this issue from coredns/coredns Feb 23, 2022
@chrisohaver
Copy link
Member

Crash in unbound plugin. Same issue reported in #28.

@georglauterbach
Copy link

It seems as if someone else also needs the unbound plugin for recursive DNS resolution for a mail server. I just built CoreDNS with the plugin, but it seems to work for me at the moment:

$ dig @localhost -p 8053 A 2.0.0.127.zen.spamhaus.org.

; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> @localhost -p 8053 A 2.0.0.127.zen.spamhaus.org.
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44429
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 8cf772d423ce7983 (echoed)
;; QUESTION SECTION:
;2.0.0.127.zen.spamhaus.org.	IN	A

;; ANSWER SECTION:
2.0.0.127.zen.spamhaus.org. 47	IN	A	127.0.0.2
2.0.0.127.zen.spamhaus.org. 47	IN	A	127.0.0.10
2.0.0.127.zen.spamhaus.org. 47	IN	A	127.0.0.4

;; Query time: 0 msec
;; SERVER: 127.0.0.1#8053(localhost) (UDP)
;; WHEN: Fri May 13 19:42:08 CEST 2022
;; MSG SIZE  rcvd: 193

@jdoss
Copy link

jdoss commented Jun 13, 2024

This issue can most likely be closed out since #28 was closed too. @chrisohaver Do we need a new release made with the updates done to miekg/unbound#18?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants