problem with DNS lookups on non-IPv4-only-mode?
Damien Miller
djm at mindrot.org
Sat Jun 12 11:27:20 EST 2004
Dan Kaminsky wrote:
> What I meant by this being an architectural fault is that while sshd
> invocations are entirely independent (one session dying does not kill
> the entire server, IIS4/5 style), a particular sshd invocation
> cooperatively shares resources across its list of channels. That means
> that if any individual channel blocks, for any reason, all freeze.
I don't know what you mean: the channels are built around non-blocking
sockets and each channel has its own independant buffering. A stalling
connect or write on a channel will not stall the others.
The only thing that causes such stalls is DNS lookups at the moment.
> If each channel was managed by an individual thread, the architectural
> fault would be resolved.
This isn't an architectural flaw - it is just normal event-driven
programming. The fact that DNS isn't yet properly event driven in
our implementation is a bug, not an indictment of the model.
> I have found that forcing the remote server to have some server->client
> communication on a regular basis can kick me out of certain loops.
> Perhaps an alarm/signal combo might be helpful...?
{Client,Server}AliveInterval
-d
More information about the openssh-unix-dev
mailing list