[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: more info on networking trouble
From: |
Marcus Brinkmann |
Subject: |
Re: more info on networking trouble |
Date: |
Wed, 17 Jan 2001 02:01:18 +0100 |
User-agent: |
Mutt/1.1.4i |
On Tue, Jan 16, 2001 at 05:59:47AM -0500, Roland McGrath wrote:
> The IP options are bogus--they are not really there. Figure out how it is
> that telnetd thinks it is getting IP options. Whatever is returning an
> indication of IP options must be a bug (in libc or pfinet).
I didn't follow that track, because it was coming from libwrap (tcp
wrapper), and I was not set up to debug there. Instead, I let inetd start
telnetd directly, and attached gdb to pfinet before doing so.
It turns out that sometimes, when telnet seems to hang, it was sufficient to
press a key to let some more data flow (let's say a couple of lines, maybe
even the 1024 bytes it requests). So, you get a wacky terminal which chokes
and burps ;)
Seriously, I think this is some trouble with the condition_wait/select
stuff. Pending bytes don't seem to be delivered or wake a waiting select.
This seems to be a timing issue, I could keep alive telnet a lot longer
while running gdb on pfinet, esp with having breakpoints on S_io_select and
S_io_read.
But this is not everything, I also saw this:
S_io_read (user = 0x700807f9, data=0x740130be, datalen=0xff0130be,
offset = 16777215, amount = 117440516)
and a quick death with EXC_BAD_INSTRUCTION in io-ops.c, l 87 afterwards.
So there is some serious memory corruption taking place, too, as the
parameters are obviously bogus.
It is good to stop syslogd while doing this stuff, as it selects() on a
socket, which makes pfinet more nervous.
Marcus
--
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann GNU http://www.gnu.org marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de