[ktm at it.is.rice.edu: Re: [Pdns-users] PowerDNS version 2.9.20_v563 slave problem]

Kenneth Marshall ktm at it.is.rice.edu
Tue Jan 31 14:35:32 UTC 2006


Bert,

Sorry, I forgot to cc: the list. The original message is below. I
have done a little more debugging of the AXFR problem by upping the
PostgreSQL log level. Here are the commands that are sent to the DB
including the problematic one resulting in the error:

LOG:  duration: 22.147 ms  statement: select id,name,master,last_check,notified_serial,type from domains where name='ruf.rice.edu'
LOG:  duration: 3.797 ms  statement: select content,ttl,prio,type,domain_id,name from records where type='SOA' and name='ruf.rice.edu'
LOG:  duration: 0.482 ms  statement: begin
LOG:  duration: 1.617 ms  statement: delete from records where domain_id=80
LOG:  duration: 10.027 ms  statement: insert into records (content,ttl,prio,type,domain_id,name) values ('rice.edu postmaster.rice.edu 90 600 900 3600000 21600',21600,0,'SOA',80,'ruf.rice.edu')
LOG:  duration: 1.945 ms  statement: insert into records (content,ttl,prio,type,domain_id,name) values ('moe.rice.edu',21600,0,'NS',80,'ruf.rice.edu')
LOG:  duration: 0.247 ms  statement: insert into records (content,ttl,prio,type,domain_id,name) values ('hydrant.ruf.rice.edu',21600,0,'NS',80,'ruf.rice.edu')
LOG:  duration: 0.639 ms  statement: insert into records (content,ttl,prio,type,domain_id,name) values ('128.42.31.101',21600,0,'A',80,'ruf.rice.edu')
LOG:  duration: 0.577 ms  statement: insert into records (content,ttl,prio,type,domain_id,name) values ('mail.rice.edu',21600,10,'MX',80,'ruf.rice.edu')
LOG:  duration: 0.395 ms  statement: insert into records (content,ttl,prio,type,domain_id,name) values ('moe.rice.edu',21600,20,'MX',80,'ruf.rice.edu')
LOG:  duration: 0.453 ms  statement: insert into records (content,ttl,prio,type,domain_id,name) values ('128.42.31.200',21600,0,'A',80,'backup.ruf.rice.edu')
ERROR:  invalid UTF-8 byte sequence detected near byte 0x80
STATEMENT:  insert into records (content,ttl,prio,type,domain_id,name) values ('<80>*^_Ã^F',21600,0,'#1035',80,'backup.ruf.rice.edu')
LOG:  unexpected EOF on client connection

Does anyone have any ideas one how the last statement could be generated?
Increasing the loglevel does not result in any more information from the
pdns_server.

Ken

----- Forwarded message from Kenneth Marshall <ktm at it.is.rice.edu> -----

Date: Mon, 30 Jan 2006 16:28:09 -0600
From: Kenneth Marshall <ktm at it.is.rice.edu>
To: bert hubert <bert.hubert at netherlabs.nl>
Subject: Re: [Pdns-users] PowerDNS version 2.9.20_v563 slave problem

The latest 2.9.20.20060122.563 snapshot still does not have the
typedef for u_int8_t which causes and error on Solaris 8. Then
the pdns_server on Solaris 8 fails to link with the following error:

/bin/bash ../libtool --tag=CXX --mode=link g++ -DSYSCONFDIR=\"/usr/site/pdns-2.9.20.20060122.563/etc\" -DLIBDIR=\"/usr/site/pdns-2.9.20.20060122.563/lib\" -DLOCALSTATEDIR=\"/var/run\" -Ibackends/bind  -D_REENTRANT  -Wall -O2  -L/usr/site/pdns-2.9.20.20060122.563/ext/postgresql/lib -R/usr/site/pdns-2.9.20.20060122.563/ext/postgresql/lib -L/usr/site/pdns-2.9.20.20060122.563/ext/postgresql/ext -R/usr/site/pdns-2.9.20.20060122.563/ext/postgresql/ext -o pdns_server ../modules/gpgsqlbackend/gpgsqlbackend.o ../modules/gpgsqlbackend/spgsql.o ../modules/pipebackend/coprocess.o ../modules/pipebackend/pipebackend.o  -lpq -lssl -lcrypto  -lcrypt -lresolv -lnsl     -ldl   dnspacket.o nameserver.o qtype.o logger.o arguments.o packethandler.o tcpreceiver.o packetcache.o statbag.o dnsbackend.o ws.o webserver.o session.o misc.o receiver.o ueberbackend.o dynlistener.o dynhandler.o resolver.o communicator.o dnsproxy.o randombackend.o unix_utility.o common_startup.o unix_semaphore.o bindbackend2.o zoneparser2.o bindparser.o bindlexer.o huffman.o gsqlbackend.o sillyrecords.o bindbackend.o base64.o  -lposix4 -lresolv -lnsl -lsocket -lpthread -lz
g++ -DSYSCONFDIR=\"/usr/site/pdns-2.9.20.20060122.563/etc\" -DLIBDIR=\"/usr/site/pdns-2.9.20.20060122.563/lib\" -DLOCALSTATEDIR=\"/var/run\" -Ibackends/bind -D_REENTRANT -Wall -O2 -o pdns_server ../modules/gpgsqlbackend/gpgsqlbackend.o ../modules/gpgsqlbackend/spgsql.o ../modules/pipebackend/coprocess.o ../modules/pipebackend/pipebackend.o dnspacket.o nameserver.o qtype.o logger.o arguments.o packethandler.o tcpreceiver.o packetcache.o statbag.o dnsbackend.o ws.o webserver.o session.o misc.o receiver.o ueberbackend.o dynlistener.o dynhandler.o resolver.o communicator.o dnsproxy.o randombackend.o unix_utility.o common_startup.o unix_semaphore.o bindbackend2.o zoneparser2.o bindparser.o bindlexer.o huffman.o gsqlbackend.o sillyrecords.o bindbackend.o base64.o  -L/usr/site/pdns-2.9.20.20060122.563/ext/postgresql/lib -L/usr/site/pdns-2.9.20.20060122.563/ext/postgresql/ext -lpq -lssl -lcrypto -lcrypt -ldl -lposix4 -lresolv -lnsl -lsocket -lpthread -lz -Wl,-R -Wl,/usr/site/pdns-2.9.20.20060122.563/ext/postgresql/lib -Wl,-R -Wl,/usr/site/pdns-2.9.20.20060122.563/ext/postgresql/ext
if g++ -DHAVE_CONFIG_H -I. -I. -I..  -Ibackends/bind  -O3 -I/build/boost-1.33.0/src/dist -DSYSCONFDIR=\"/usr/site/pdns-2.9.20.20060122.563/etc\" -DLIBDIR=\"/usr/site/pdns-2.9.20.20060122.563/lib\" -DLOCALSTATEDIR=\"/var/run\" -Ibackends/bind  -D_REENTRANT  -Wall -O2 -MT syncres.o -MD -MP -MF ".deps/syncres.Tpo" -c -o syncres.o syncres.cc; \
then mv -f ".deps/syncres.Tpo" ".deps/syncres.Po"; else rm -f ".deps/syncres.Tpo"; exit 1; fi
In file included from syncres.hh:15,
                 from syncres.cc:20:
recursor_cache.hh: In member function `bool MemRecursorCache::predicate::operator()(const MemRecursorCache::StoredRecord&) const':
recursor_cache.hh:58: warning: comparison between signed and unsigned integer expressions
In file included from dnsparser.hh:35,
                 from syncres.cc:35:
dnswriter.hh:7:20: stdint.h: No such file or directory
make[3]: *** [syncres.o] Error 1
make[3]: Leaving directory `/build/pdns-2.9.20.20060122.563/src/pdns-2.9.20.20060122.563/pdns'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/build/pdns-2.9.20.20060122.563/src/pdns-2.9.20.20060122.563/pdns'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/build/pdns-2.9.20.20060122.563/src/pdns-2.9.20.20060122.563'
make: *** [all] Error 2





The version build successfully on Redhat9 and Redhat Enterprise Linux 3.

The built version gives the following error when run using the gpgsql
backend in SLAVE mode:

Jan 30 15:56:52 ns1 pdns[4573]: gpgsql Connection succesful
Jan 30 15:56:52 ns1 pdns[4573]: AXFR started for 'ruf.rice.edu', transaction started
Jan 30 15:56:52 ns1 pdns[4573]: Communicator thread died because of error: PostgreSQL failed to execute command: ERROR:  invalid UTF-8 byte sequence detected near byte 0x80 
Jan 30 15:56:54 ns1 pdns[4548]: Our pdns instance exited with code 0
Jan 30 15:56:54 ns1 pdns[4548]: Respawning
Jan 30 15:56:55 ns1 pdns[4593]: Guardian is launching an instance
Jan 30 15:56:55 ns1 pdns[4593]: This is a guarded instance of pdns
...

On the PostgreSQL 8.1.2 server the errorlog has the following messages:

ERROR:  invalid UTF-8 byte sequence detected near byte 0x80
LOG:  unexpected EOF on client connection
LOG:  unexpected EOF on client connection
LOG:  unexpected EOF on client connection
LOG:  unexpected EOF on client connection
ERROR:  invalid UTF-8 byte sequence detected near byte 0x80
LOG:  unexpected EOF on client connection
LOG:  unexpected EOF on client connection
LOG:  unexpected EOF on client connection
LOG:  unexpected EOF on client connection
...

I know that PostgreSQL 8.1 is stricter about enforcing UTF-8 but it
is strange that all of the errors occur on the 128 byte boundary.
Is there anything else I can do to help with debugging this problem.
Some of the servers are successfully transferring their zones and
others are not. They are all running the same bind-9.2.x versions.

Ken

----- End forwarded message -----


More information about the Pdns-users mailing list