-
Notifications
You must be signed in to change notification settings - Fork 2k
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
ng_nativenet crashes when hammered #3222
Comments
Currently I'm running into the same problem with RIOT-RIOT pings after a while (just for the record) |
@kaspar030 do you have any further suggestions regarding this issue? |
Well, my gut feeling is that errno is being used in a non-thread-safe way. Other than completely refactoring native, we could try to ignore all errors from select. |
@PeterKietzmann Could you try #3340? It makes hammer-pings a lot more stable, and native crashes differently when applied. |
I did. Seems to fix the above described bug. Often when hammering one tap device with pings (RIOT-RIOT in my case) I get |
@PeterKietzmann From what you describe, I would guess a thread control block gets overwritten by a buffer overflow or stack overflow somewhere. Are you close to filling the stack on any thread? |
@gebart regarding buffer overflows I hoped that the address-sanitizer tool would have shown me warnings. Long time no warnings. According to the thread stack I remember @haukepetersen once experienced a strange behaviour that the IDLE thread grew in size over the time. I'm currently looking at this, but until now I didn't find anything. See this output+backtrace. Strangely enough
|
PS: What you see is the output of a modified version of the |
using "ping6 -f %tapX" from two threads on linux to riot at the same time, I can reliably crash native:
Weird thing is that it's crashing in
lpm_set()
with "Resource temporarily unavailable", which points to EAGAIN in errno, which should have been handled before. Looks like a race.@LudwigOrtmann, does native share errno between all threads, like "normal" RIOT?
The text was updated successfully, but these errors were encountered: