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