[slime-devel] Lisp connection closed unexpectedly
Helmut Eller
heller at common-lisp.net
Mon Dec 7 06:53:28 UTC 2009
* Matthew Mondor [2009-12-07 04:31+0100] writes:
>> The file is attached below and can be opened with Wireshark. Some TCP
>> packets have a "TCP CHECKSUM INCORRECT". This seems very odd to me.
>> Does somebody know what it means?
>
> The text results of tcpdump (especially using -nvvxX flags) or a binary
> tcpdump result would be easier for me (and perhaps others?) to read.
>
> When I encountered packet checksum errors here it was due to a
> card/driver specific TCP hardware acceleration feature when enabled, or
> hardware problems, although a faulty software packet translator or IP
> stack bug is not impossible... Since your test appears to be local, I
> doubt NIC TCP acceleration to be the problem however.
>
> In case your question was litteral about "what it means?" (sorry for
> stating the obvious if it wasn't), a TCP checksum is wrong for a packet
> when it doesn't match the actual checksum of its payload (indicating it
> was probably corrupted in transit, or wrongly calculated), and this is
> rarely calculated/verified at the application layer, except by userland
> packet-level analysis/manipulation tools.
>
> It could even be a tshark-specific problem...
Everything goes through the loopback device and no real hardware is
involved so it strange to see checksum errors. Maybe it's just a
Wireshark weiredness.
Anyway, my current hypothesis is that Emacs' connect() is interrupted by
a timer and, instead of retrying, Emacs closes the socket and starts
over with a new socket. That would explain the two connections from
different ports in the trace. It's also not entirely unreasonable to
start with a fresh socket if we assume that the server accepts multiple
connections, but our server accepts one connection only. It's still
strange that the 3-way handshake for the second connection succeeds.
Need to dig deeper.
Helmut
More information about the slime-devel
mailing list