[ldns-users] ldns-read-zone output not very helpful
anandb at ripe.net
Wed Jul 21 09:01:41 UTC 2021
On 21/07/2021 10:43, Wouter Wijngaards via ldns-users wrote:
>> Line 3638 is actually a blank line! Here are the lines before and after it:
>> 3636 reg01-test.atlas 86400 A 126.96.36.199
>> 3637 reg01-test.atlas 86400 AAAA 2001:67c:2e8:11::188.8.131.52
>> 3639 reg02-test.atlas 86400 A 184.108.40.206
>> 3640 reg02-test.atlas 86400 AAAA 2001:67c:2e8:11::220.127.116.11
> So the error happens because the code is trying to read the class but
> this fails. To be precise: the owner name can be read. The TTL can be
> read, and if it exists, it parses. But when it then attempts to read the
> next token, for the class, that token cannot be read.
> You skip the class token and have a type token. But the token itself
> cannot be read, I mean it skips spaces and tabs but then fails. So the
> token fetch failed at the class position.
> Perhaps there is data there, but there is whitespace on the line. And
> the empty spaces are read as an owner and TTL, empty values, and then
> the class token read finds the end of the buffer and this fails with the
> syntax error.
> Or there could be invisible unicode characters in the sourcefile. But I
> do not immediately see what codepath would then print this error.
I have just checked the file again. Around the line where ldns reports
this error, I do not see anything strange. Line 3638 is truly blank, as
in, it contains just a newline character, and nothing else.
The zone file has several $INCLUDE directives, and some of the included
files have $GENERATE directives in them. Could ldns be getting confused
by these? Could it also be reporting the line number *after* including
the files? That would explain why I can't find anything obvious.
More information about the ldns-users