openssh 2.2, fbsd 4.2: incoming data hangs sshd on tty
mike at hyperreal.org
mike at hyperreal.org
Tue Dec 26 13:30:20 EST 2000
I wrote:
> sshd, specifically the forked sshd process that is attached to a terminal
> when a connection is made, tends to freeze when receiving data over the link.
> The only way out is to kill -9 this process. It is easily reproducible by
> pasting text into an editor.
With the help of someone who advised me to run ktrace on the sshd process
that freezes, I have narrowed down the circumstances under which the problem
is reproducible, and I discovered that sshd does receive a little bit more
data from the paste than I get to see coming back from the editor.
It seems to have to do with whatever the pico (yes, pico, old habits die
hard) editor is doing when it is receiving keystrokes and writing out to the
screen. General screen repaints (ctrl-L) are fine; as are individual
keystrokes. But pasting into the editor causes the ssh freeze-up. As I
mentioned, there is no way to get out of it; killing the editor or the shell
don't work; the processes stick around waiting for sshd to let them go or
something. I have to kill the sshd process.
Contrary to earlier test results, I am unable to reproduce the problem
outside of pico. Pasting the same text into an echo "..." command in the
shell multiple times yielded no problems.
Tail end of the kdump follows. Note that it does not RET from the write() at
the end:
407 sshd CALL select(0x6,0xbfbff39c,0xbfbff31c,0,0)
407 sshd RET select 1
407 sshd CALL read(0x4,0xbfbfb2dc,0x4000)
407 sshd GIO fd 4 read 156 bytes
"\0\0\0>µ\M^XÏ¥AÐ8\M^Wl\M^_<s¢0ä\^BËH\M^A0Ñ\^W"AU\^\\M^]Á\fP-ÁCfc´\240ò\
©\M^Am<\^P\M^YËo¦øoB\M^UÜ\^NþEd\^Wî\^OàF0Øp\0\0\0
|ª¿xû\M^]Þß¾ÊE¡Ö<-]\0\0\0>èàȸâ\aM?ï4Ü1ø>Á\M^M®4\^Cóª\M^@wõ\M^I¼Q\^\ó\
Ìo\M^H\M^YYÉAÕ{=l,eèÖÃ\fb{´|\M^F\^T§»°u\M^_\M^SÜÇ?¶V"
407 sshd RET read 156/0x9c
407 sshd CALL select(0x6,0xbfbff39c,0xbfbff31c,0,0)
407 sshd RET select 1
407 sshd CALL read(0x5,0xbfbfb2dc,0x4000)
407 sshd GIO fd 5 read 8 bytes
"\^[[19;64H"
407 sshd RET read 8
407 sshd CALL select(0x6,0xbfbff39c,0xbfbff31c,0,0xbfbff2d4)
407 sshd RET select 1
407 sshd CALL write(0x3,0x8082000,0x6ea)
Don't know if this is helpful or not.
More information about the openssh-unix-dev
mailing list