udns_resolver.c:916: dns_submit_dn: Assertion `q->dnsq_origdnl0 > 0' failed.

Iñaki Baz Castillo ibc at aliax.net
Tue Jul 5 17:29:40 MSD 2011


2011/7/5 Michael Tokarev <mjt at tls.msk.ru>:
> I can't reproduce this.  Maybe some little code?  I tried this tiny app:
>
> --- cut ---
> #include <udns.h>
> #include <stdio.h>
> #include <string.h>
>
> int main(int argc, char **argv) {
>  int i;
>  dns_init(NULL, 1);
>  for(i = 1; i < argc; ++i)
>    if (dns_resolve_srv(NULL, argv[i], NULL, NULL, 0) == NULL)
>      printf("%s: %s\n", argv[i], dns_strerror(dns_status(NULL)));
>    else
>      printf("%s: %s\n", argv[0], "ok");
>  return 0;
> }
> --- cut ---
>
> $ ./a.out a._
> a._: domain name does not exist

Hi, note that I don't mean "a._" but "a. _" (with space, so you must
enclose the string between "" to pass it as a single argument to the
call).
Sorry, I was wrong, please use ".a _".


I'm using it in async mode, could it behave differently? My code
(which is a C extension for Ruby) uses dns_submit_srv as shown in the
sources:

  https://github.com/ibc/em-udns/blob/master/ext/em-udns.c#L562

In any other case (A, AAAA, TXT, NAPTR, MX) querying for the above
wrong domain produces BADQUERY, but in SRV it produces the assertion
error.

As a side note, I'm not able to reproduce the error again (extrange),
but still SRV behaves different:

- Querying A, AAAA, MX, TXT or NAPTR for ".a _" it produces a BADQUERY error.
- Querying SRV for ".a _" produces now a dns timeout (TEMPFAIL).



> Also, please show me the search list your
> app uses (search from /etc/resolv.conf or equivalent).

I export NAMESERVERS to 127.0.0.1 before initializing the resolver. I
use unbound DNS server locally. No other errors at all (apart of the
current one).


Thanks a lot.


-- 
Iñaki Baz Castillo
<ibc at aliax.net>


More information about the udns mailing list