[En-Nut-Discussion] Ethernut TCP hangs

Harald Kipp harald.kipp at egnite.de
Wed Mar 30 16:19:22 CEST 2005


Indeed 3.9.1 contained a bug in the TCP state machine,
which had been discovered and fixed some time ago.
See entry 2005-01-02 of
http://cvs.sourceforge.net/viewcvs.py/ethernut/nut/ChangeLog?rev=1.187&view=auto

Version 3.9.5 includes this and the later arpcache fix
up to 2005-02-04. All remaining changes not yet released
should not result in TCP stack problems.

We recently ran a few long time tests including heavy traffic
tests with CVS HEAD up to 2005-03-13 without problems on
Ethernut 1.3 boards. All 8 CPU were running Nut/OS, one of
them with 14 concurrent threads. Everything seems to be quite
solid.

Any possibility, that you mismatched the versions?

If you don't want to run cvs, you may also grab the latest
snapshot from
http://www.egnite.de/cvs

If this doesn't solve it, I'm most interested in helping to find
the cause. May be you can setup a simple test case. Hopefully
it could be reproduced by a simple TCP application. I'd hate
to click on a browser update button for hours. :-) Though, it
should use concurrent connections. If there's a problem, it's
most likely caused by multithreaded transfers.

We also need to know the hardware (Realtek or SMSC Controller)
and the exact compiler version.

Harald

At 15:39 30.03.2005 +0200, you wrote:
>Hi,
>
>I'm using an ethernut board for a long time as Ethernet-Server.
>
>It is running well over a very long period without any problem (last
>known good OS: Nut/OS 3.4.1.1).
>The application is based on the http server sample. I've added some more
>threads to service the uart(s) and a SNTP
>client.
>========================================================================
>======================
>Problem:
>To keep my board up-to-date I tried to upgrade to Nut/OS 3.9.1 some
>weeks ago.
>
>Result: I discovered that after several minutes of heavy load on the TCP
>channel, the connection to ethernet is lost
>            until a reset is performed.
>
>It seems, that only the TCP stack fails, the remaining threads (UART,
>SNTP, watchdog ...) are running, so that diagnostic messages sent
>over the UART are transmitted correctly. Only the http thread seems to
>hang!?
>========================================================================
>=======================
>
>After that I switched back to 3.4.1.1 and everything was fine again
>(rock solid in a very high traffic session running several hours).
>
>In the latest ethernut discussion group posts I read that similar
>problems were discovered by other parties and that you
>worked on it. Finally I got the impression, that you fixed the problem.
>So I tried to use 3.9.5 pre.
>
>Result: Unfortunately it almost has the same behavior as with 3.9.1 ->
>Freeze of the TCP after several minutes of intensive traffic.
>
>Question: Is your fix for the problem you discussed with  Bernd Walter,
>Dusan Ferbas, Roman in thread: [TCP stops working after some time]
>included in the 3.9.5 pre ?
>
>thx in advance
>
>M.Smola
>Munich




More information about the En-Nut-Discussion mailing list