Hm, making pdns implement the $named virtual facility do not seem to
be enough.  The server is not accepting DNS requests when the init.d
script exits, causing dhcpd to fail to start even if its init.d script
depend on $named.  This syslog snipped show the issue.  Notice how the
LDAP server is operational first, pdns starts, dhcpd starts and then
pdns report that it is listening to DNS requests on TCP and UDP:

Jun 16 13:32:23 tjener slapd[2341]: slapd starting
Jun 16 13:32:24 tjener pdns[2358]: Listening on controlsocket in 
'/var/run/pdns.controlsocket'
Jun 16 13:32:24 tjener pdns[2363]: Guardian is launching an instance
Jun 16 13:32:24 tjener pdns[2363]: Reading random entropy from '/dev/urandom'
Jun 16 13:32:24 tjener dhcpd: Connecting to LDAP server ldap:389
Jun 16 13:32:24 tjener dhcpd: Successfully logged into LDAP server ldap
Jun 16 13:32:24 tjener dhcpd: Cannot find host LDAP entry dhcp 
(&(objectClass=dhcpServer)(cn=dhcp))
Jun 16 13:32:24 tjener dhcpd: Configuration file errors encountered -- exiting
Jun 16 13:32:24 tjener dhcpd: Internet Systems Consortium DHCP Server V3.1.3
Jun 16 13:32:24 tjener dhcpd: Copyright 2004-2009 Internet Systems Consortium.
Jun 16 13:32:24 tjener dhcpd: All rights reserved.
Jun 16 13:32:24 tjener dhcpd: For info, please visit 
https://www.isc.org/software/dhcp/
Jun 16 13:32:24 tjener dhcpd: Connecting to LDAP server ldap:389
Jun 16 13:32:24 tjener dhcpd: Successfully logged into LDAP server ldap
Jun 16 13:32:24 tjener dhcpd: Cannot find host LDAP entry dhcp 
(&(objectClass=dhcpServer)(cn=dhcp))
Jun 16 13:32:24 tjener dhcpd: Configuration file errors encountered -- exiting
Jun 16 13:32:24 tjener pdns[2363]: This is a guarded instance of pdns
Jun 16 13:32:24 tjener pdns[2363]: It is advised to bind to explicit addresses 
with the --local-address option
Jun 16 13:32:24 tjener pdns[2363]: UDP server bound to 0.0.0.0:53
Jun 16 13:32:24 tjener pdns[2363]: TCP server bound to 0.0.0.0:53
Jun 16 13:32:24 tjener pdns[2363]: PowerDNS 2.9.22 (C) 2001-2009 PowerDNS.COM 
BV (May 23 2010, 12:35:32, gcc 4.4.4) starting up
Jun 16 13:32:24 tjener pdns[2363]: 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.
Jun 16 13:32:24 tjener pdns[2363]: DNS Proxy launched, local port 15935, remote 
127.0.0.1:1553
Jun 16 13:32:24 tjener pdns[2363]: Creating backend connection for TCP
Jun 16 13:32:24 tjener pdns[2363]: About to create 3 backend threads for UDP
Jun 16 13:32:24 tjener pdns[2363]: Done launching threads, ready to distribute 
questions

I tried adding 'sleep 2' at the end of the 'start' block in
init.d/pdns, and this changed the ordering to this:

Jun 16 13:41:57 tjener slapd[2155]: slapd starting
Jun 16 13:41:57 tjener pdns[2184]: Listening on controlsocket in 
'/var/run/pdns.controlsocket'
Jun 16 13:41:57 tjener pdns[2187]: Guardian is launching an instance
Jun 16 13:41:57 tjener pdns[2187]: Reading random entropy from '/dev/urandom'
Jun 16 13:41:58 tjener pdns[2187]: This is a guarded instance of pdns
Jun 16 13:41:58 tjener pdns[2187]: UDP server bound to 127.0.0.1:53
Jun 16 13:41:58 tjener pdns[2187]: UDP server bound to 10.0.2.2:53
Jun 16 13:41:58 tjener pdns[2187]: TCP server bound to 127.0.0.1:53
Jun 16 13:41:58 tjener pdns[2187]: TCP server bound to 10.0.2.2:53
Jun 16 13:41:58 tjener pdns[2187]: PowerDNS 2.9.22 (C) 2001-2009 PowerDNS.COM 
BV (May 23 2010, 12:35:32, gcc 4.4.4) starting up
Jun 16 13:41:58 tjener pdns[2187]: 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.
Jun 16 13:41:58 tjener pdns[2187]: DNS Proxy launched, local port 30607, remote 
127.0.0.1:1553
Jun 16 13:41:58 tjener pdns[2187]: Creating backend connection for TCP
Jun 16 13:41:58 tjener pdns[2187]: About to create 3 backend threads for UDP
Jun 16 13:41:58 tjener pdns[2187]: Done launching threads, ready to distribute 
questions
Jun 16 13:41:58 tjener kdm: :0[1961]: ignoring low-UID user (0 < 1000)
Jun 16 13:41:59 tjener dhcpd: Connecting to LDAP server ldap:389
Jun 16 13:41:59 tjener dhcpd: Successfully logged into LDAP server ldap
Jun 16 13:41:59 tjener dhcpd: Found dhcpServer LDAP entry 
'cn=dhcp,dc=skole,dc=skolelinux,dc=no'
Jun 16 13:41:59 tjener dhcpd: LDAP: Parsing dhcpServer options 
'cn=dhcp,dc=skole,dc=skolelinux,dc=no' ...

This time the LDAP server starts, pdns starts and is ready to handle
DNS requests before dhcpd starts, and the DHCP server is able to get
going at boot.

Can the pdns init.d script or the pdns source be changed to make sure
pdns is operational when the init.d script exits?

Happy hacking,
-- 
Petter Reinholdtsen



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to