-
Notifications
You must be signed in to change notification settings - Fork 7.3k
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
[Crash][NimBLE][ESP32-S3] BLE Indication crashes due to Interrupt WDT (IDFGH-10063) #11338
Comments
Hi @chipweinberger , Two queries.
0x42016c18: gap_client_get(unsigned short) at /Volumes/User/MBP-Google-Drive/jamcorder/firmware/jamcorder-firmware/jamcorder_common/jcommon/bluetooth/pd_bluetooth.cpp:180 0x42016c28: gap_client_get(unsigned short) at /Volumes/User/MBP-Google-Drive/jamcorder/firmware/jamcorder-firmware/jamcorder_common/jcommon/bluetooth/pd_bluetooth.cpp:179
|
Yes. Here it is. To be honest, I don't understand why Note: gap_client_get:
And here are my other BLE related functions that appear in that stackstrace pd_bluetooth_indicate_client
indicate_msg
handle_gap_event
|
Three things:
|
New info: I've found part of the issue. We are inserting timers...forever? Code: I added code to print on every iteration of LIST_FOREACH in the timers.
Whenever we hit the IWDT, it is stuck in an infinite loop:
|
New info: there is stack corruption, it seems. Code: I added a call to
Logs
|
More Info: Enabling Wifi, Usb Host, Uart, etc, all seem to make it hit the infinite loop sooner, but it can repro without any of that as well. Just takes longer. |
New Info: Not too surprising, when we hit this issue, the timer list is somehow a circular loop.
|
Just wondering if this is related: #11215 (maybe you can try this fix) |
Hah, I was just about to comment the same thing. Let me try that! |
YES THAT FIXES THE CRASH. 🎉 |
I see the fix was merged in master and v5.1 |
Answers checklist.
IDF version.
v4.4.4
Operating System used.
macOS
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
Development Kit.
ESP32-S3 Dev Kit C
Power Supply used.
USB
What is the expected behavior?
No panic.
What is the actual behavior?
After about ~5 indications, eventually I hit a Interrupt WDT. See backtrace.
Steps to reproduce.
Debug Logs.
More Information.
No response
The text was updated successfully, but these errors were encountered: