-
Notifications
You must be signed in to change notification settings - Fork 48
Ethernet instable, kind of deadlocking the controller; Nucleo F429ZI #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I confirm the bug. But it is hard to reproduce it. If you have time to start to track it you can enable the debug trace of LwIP:
My time is limited currently but as soon as possible I will take a closer look. |
Took a look at LWIP debug output meanwhile. Looks like some kind of memory leak,
LogFiles of debug output: Also noticed that the bug also occurs when using a single tcp connection, which is just connected once and then held open, so it does not seem to be related to the process of connecting/disconnecting clients. |
Thank you @pulli7 for your useful log files. I reproduced this issue too. Same message before the crash: Let me know if you have fixed this issue. |
Just to be clear, I first discovered the bug in my own application, but everything I describe here, was done with the WebServer example, that comes with the library! Only modification was change of Ip-address, and in case of the the logs removing the serial prints. I did some testing with the memory options. It has some impact on the behavior, but I was not able to solve the bug. |
Thank you for your effort to solve this issue. |
Tested LwIP 2.0.3 with the Webserver sketch from the library, sadly the behaviour is the same as before... I then enabled When continuing to send requests after Logfile: (only one single Google Chrome tab used as client) I tried giving LwIP more heap and increased the Logfile: (again one single Google Chrome tab as a client) One other thing I noticed, but think is not that relevant for the issue, just want to mention it: |
Hi @pulli7 I took the time but I think I have something that can resolve your issue. With this fix, Another precision: Please keep me inform. |
Thank you very much @fprwi6labs ! Tested this morning, it now works perfectly stable! Issue can be marked as resolved. |
Thanks @pulli7 for your tests and @fprwi6labs for the fix. |
I'm expiriencing some issues while using the F429ZI as a http-server. (quite simple application, where a few controller pins are set according to http requests from clients)
It generally does what it is meant to do, but at some point clients can not reach the server any more. If client is a web browser, opening a new tab solves this temporarely, but soon or later the controller gets kind of locked, meaning it is completly unreachable, and even code in main loop does not seem to get executed any more (tested by attaching switch on one pin, which turns on/off another GPIO).
There does not seem to be a specific number of requests or clients leading to failure, sometimes two or three requests from one single client already lead to a complete lock, sometimes it takes a few thousands from different clients, but at some point it always fails.
One strange thing is, that requests from webbrowser seem to lead to failure way faster, than from other applications like Curl, especially when multiple clients are involved. Maybe some timing issue??
The behavior can be reproduced with the server-example from the library. Just starting the server and then have for example five or six Curl clients throwing requests at it every few seconds, makes it fail quite fast most of the time, especially when also sending requests from a webbrowser manually.
I used this simple bat script for testing:
I hope there is someone who can also reproduce this and is familiar with the ethernet implementation, because I absolutely have no clue how to track this down...
The text was updated successfully, but these errors were encountered: