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

Bind backend crashes while parsing SRV records written by pdns 3.4 #4361

Closed
leonnnn opened this issue Aug 24, 2016 · 1 comment
Closed

Bind backend crashes while parsing SRV records written by pdns 3.4 #4361

leonnnn opened this issue Aug 24, 2016 · 1 comment

Comments

@leonnnn
Copy link

leonnnn commented Aug 24, 2016

After upgrading from 3.4.1 (from Debian) to 4.0.1 (from repo.powerdns.org), bind backend crashed on startup:

Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 Reading random entropy from '/dev/urandom'
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 Loading '/usr/lib/x86_64-linux-gnu/pdns/libbindbackend.so'
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 This is a standalone pdns
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 Listening on controlsocket in '/var/run/pdns.controlsocket'
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 UDP server bound to 217.115.12.65:53
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 UDPv6 server bound to [2a00:1328:e101:b01::1]:53
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 TCP server bound to 217.115.12.65:53
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 TCPv6 server bound to [2a00:1328:e101:b01::1]:53
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 PowerDNS Authoritative Server 4.0.1 (C) 2001-2016 PowerDNS.COM BV
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 Using 64-bits mode. Built using gcc 4.9.2 on Jul 29 2016 15:27:35 by root@a96491a655f3.
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 Listening for HTTP requests on 127.0.0.1:8081
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 Polled security status of version 4.0.1 at startup, no known issues reported: OK
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 Creating backend connection for TCP
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 [bindbackend] Parsing 34 domain(s), will report when done
Aug 24 15:44:26 feynman pdns_server[15823]: Unable to close down sqlite connection: 5
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 Got a signal 6, attempting to print trace:
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/sbin/pdns_server(+0x1a8da6) [0x7fea00969da6]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /lib/x86_64-linux-gnu/libc.so.6(+0x350e0) [0x7fe9fe5c80e0]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x37) [0x7fe9fe5c8067]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /lib/x86_64-linux-gnu/libc.so.6(abort+0x148) [0x7fe9fe5c9448]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/sbin/pdns_server(_ZN8SSQLite3D2Ev+0x64) [0x7fea00a0c014]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/sbin/pdns_server(_ZN8SSQLite3D0Ev+0x9) [0x7fea00a0c029]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/sbin/pdns_server(_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE10_M_releaseEv+0x45) [0x7fea00887ac5]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/lib/x86_64-linux-gnu/pdns/libbindbackend.so(_ZN12Bind2BackendC2ERKSsb+0x767) [0x7fe9fd190997]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/lib/x86_64-linux-gnu/pdns/libbindbackend.so(_ZN12Bind2Factory4makeERKSs+0x26) [0x7fe9fd19b7c6]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/sbin/pdns_server(_ZN17BackendMakerClass3allEb+0x1a1) [0x7fea00895401]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/sbin/pdns_server(_ZN12UeberBackendC2ERKSs+0x1a9) [0x7fea009cbf09]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/sbin/pdns_server(_ZN13PacketHandlerC1Ev+0x3c) [0x7fea00953f3c]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/sbin/pdns_server(_ZN13TCPNameserver2goEv+0xa2) [0x7fea009b2ca2]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/sbin/pdns_server(_Z10mainthreadv+0x6bc) [0x7fea0087161c]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/sbin/pdns_server(main+0x3dd1) [0x7fea00832281]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fe9fe5b4b45]
Aug 24 15:44:26 feynman pdns_server[15823]: Aug 24 15:44:26 /usr/sbin/pdns_server(+0x73cc8) [0x7fea00834cc8]
Aug 24 15:44:26 feynman systemd[1]: pdns.service: main process exited, code=killed, status=6/ABRT
Aug 24 15:44:26 feynman systemd[1]: Failed to start PowerDNS Authoritative Server.
Aug 24 15:44:26 feynman systemd[1]: Unit pdns.service entered failed state.

I was able to trace it down to two problematic slave zone files, both of which contained SRV records with double dots. Here’s a minimal example that triggers the crash:

  @   IN SOA  ns0.q-ix.net. dnsmaster.q-ix.net. 2016082401 14400 10800 2419200 3600
  foo IN SRV  0 0 5222 ..

And here’s the same zone that works fine:

  @   IN SOA  ns0.q-ix.net. dnsmaster.q-ix.net. 2016082401 14400 10800 2419200 3600
  foo IN SRV  0 0 5222 .

The problematic zone files were written by pdns 3.4.1. After removing them, pdns 4.0.1 does a fresh AXFR and writes the SRV records out with single dots.

I’ve tested with pdns master as well, which shows the same behaviour to me.

The stack trace seems similar to #2334, however this crash does not occur while parsing named.conf but while parsing a bind zone file.

@pieterlexis pieterlexis added this to the auth-4.0.x milestone Aug 24, 2016
@Habbie Habbie modified the milestones: auth-helpneeded, auth-4.0.x, auth-4.2.0 May 3, 2017
@Habbie Habbie modified the milestones: auth-4.2.0, auth-4.3.0 Nov 20, 2018
@Habbie
Copy link
Member

Habbie commented Feb 14, 2020

Fixed since 4.1.0.

@Habbie Habbie closed this as completed Feb 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants