[Pdns-users] SPF records - Parsing Exceptions / STL Errors (WAS: specifying more complex sql queries with gmysql back-end)

Peter van Dijk peter.van.dijk at netherlabs.nl
Wed Nov 30 18:58:42 UTC 2011

Hello Tom,

On Nov 24, 2011, at 10:38 , Tom wrote:

> Exception: Parsing record content: Data field in DNS should start with quote (") at position 0 of 'v=spf1 include:_spf.google.com ~all'
> and even more worryingly, like this:
> TCP Connection Thread died because of STL error: Parsing record content: Data field in DNS should start with quote (") at position 0 of 'v=spf1 a:randomdomain.com ~all'

This is not as bad as it looks - that thread was created just for serving one AXFR request, and it would go away at the end of the request (had it been successful) anyway.

> Basically, after starting to validate these records, and retrospectively fixing the records already in the database, my performance has returned to normal.

That's good to hear! Anecdote: a user once reported dismal performance (hundreds of queries per second instead of tens of thousands). It turned he, too, was measuring how many exceptions per second C++ could generate (not a lot!) instead of how many valid requests PowerDNS could handle.

> We are running a custom version of, with a custom written MSSQL back-end which we have as second in priority to the gmysql backend.  I've looked in to trying to use OpenDBX in order to upgrade to a later version of PDNS (v3+) without having to rewrite portions of the custom back-end, but I think it would be too much work to try and re-design our database and control panel to work with the database format that OpenDBX requires.  I don't think it's practical.  I think upgrading to 2.9.22 wouldn't be too much work, but I'm wondering whether the issues I've raised above would have been fixed if we did that.  I know that there are some bugs fixed which cause the TCP thread to recycle when there are timeouts, but I don't know about these parsing exceptions.

I have not looked at 2.9.22, but I can tell you that 3.1-pre still takes parse errors very seriously, like your errors pasted above. TXT parsing has become more lenient but other invalid data (like 'abdefgh' in an AAAA record) can still yield those exceptions. Upgrading to 2.9.22 or 3.0 should not make a difference in performance in the face of parse errors. However, I would be surprised if forward-porting your patches to 2.9.22 turns out to be very complicated.

Kind regards,
Peter van Dijk

More information about the Pdns-users mailing list