internal error looping module (unbound 1.7.3)

Hi,

a log entry says:

error: internal error: looping module (iterator) stopped

but the DNS service still works.

Unfortunately there is nothing else in the logs (running in verbosity 1)

Is this an error where unbound automatically recovers from?
Should one restart unbound even though it appears to work fine after such an error?

version: unbound 1.7.3 + patch[1] running on FreeBSD

kind regards,
nusenu

[1] https://nlnetlabs.nl/pipermail/unbound-users/2018-July/005349.html

Hi Nusenu,

Hi,

a log entry says:

error: internal error: looping module (iterator) stopped

but the DNS service still works.

The error says that the iterator modules is called too many times.
Could be a flaw in eg. qname minimisation that gets stuck in a loop. Or
it could be some other flaw, eg. a user (script) module that keeps
(re-)starting the iterator module. It would be interesting to see what
query that was for.

This patch should log the query name at verbosity level 1.

Index: services/mesh.c

Wouter Wijngaards via Unbound-users:

a log entry says:

error: internal error: looping module (iterator) stopped

but the DNS service still works.

The error says that the iterator modules is called too many times.
Could be a flaw in eg. qname minimisation that gets stuck in a loop. Or
it could be some other flaw, eg. a user (script) module that keeps
(re-)starting the iterator module. It would be interesting to see what
query that was for.

This patch should log the query name at verbosity level 1.

thank you for your reply and I really appreciate you even attaching a patch
for debugging in verbosity level 1.

I'll upgrade to 1.8.0 and see if that changes anything. I'm a bit reluctant
to log any kind of query (domain) data. Is it possible to log some (meta)data
that is still useful for debugging but does not write the domains into the logs?

apparently it started to happen more regularly (multiple times per day but at a low frequency <20/d).

Is anyone else also seeing this or am I the only one? (qname minimization is indeed enabled)

I'll upgrade to 1.8.0 and see if that changes anything.

upgrading to unbound 1.8.0 did not have any effect on this issue.

I'm a bit reluctant
to log any kind of query (domain) data. Is it possible to log some (meta)data
that is still useful for debugging but does not write the domains into the logs?

Is anyone else also seeing this or am I the only one? (qname minimization is indeed enabled)
(error: internal error: looping module (iterator) stopped)

Hi Nusenu,

Wouter Wijngaards via Unbound-users:

upgrading to unbound 1.8.0 did not have any effect on this issue.

I'm a bit reluctant
to log any kind of query (domain) data. Is it possible to log some (meta)data
that is still useful for debugging but does not write the domains into the logs?

Is anyone else also seeing this or am I the only one? (qname minimization is indeed enabled)
(error: internal error: looping module (iterator) stopped)

Also, I am still looking for the qname for that, it should be printed?

I didn't apply the patch from this thread.

log_query_info(VERB_OPS, "pass error for qstate", &mstate->s.qinfo);

Could you describe what exactly the patch would cause to be logged (description of s.qinfo)
i.e. via an example?

thanks!
nusenu

nusenu via Unbound-users:

error: internal error: looping module (iterator) stopped

for the record:

this error is still appearing with unbound 1.8.1

Hi,

Fredrik Pettai via Unbound-users: