On 25/11/2023 16:51, Petr Menšík wrote:
Yes, the problem is 3) has a condition we wait until it changes then
retry. But for a lot (most?) of errors we lack any indication from the
system it has changed.
For example insufficient memory or insufficient file descriptors. It may
change, but
Yes, the problem is 3) has a condition we wait until it changes then
retry. But for a lot (most?) of errors we lack any indication from the
system it has changed.
For example insufficient memory or insufficient file descriptors. It may
change, but unlike watching up and down interfaces, there
That's a good point, but I don't think there needs to be any non-fatal
error logging. There are three situations during startup.
1) bind() succeeds.
2) bind fails for a reason which won't change - fatal error.
3) bind fails for a reason which may change - startup and wait until it
does change
To fix problem with multiple instances correctly refusing running on the
same machine and namespaces, yes, it would be sufficient.
But I think part of the problem is hiding all problems during startup
and not showing them at all, in any source. I think that is okay for
EADDRNOTAVAIL to not be
Isn't this sufficient to fix the problem?
Not calling die() when bind-dynamic is set is intended to handle the
case that bind returns EADDRNOTAVAIL because you've configured
--listen-address=1.2.3.4 but there's not a local interface with that
address. dnsmasq runs anyway in the expectation
Hello everyone,
I have received error report RHEL-16398 [1], which I think makes sense
to fix even in the lastest version. I believe it allows non-intentional
another instance running without error. What is worse, it does not even
show any warning that initialization is incomplete.
Of