Open UnexpectedMaker opened 4 years ago
After the guru meditation error, do you get a backtrace line with lots of addresses? That would be helpful.
I just built from master and the crash location seems to be PC: 0x40093c30 is in coex_bt_high_prio (bt_bb.c:395).
But that assumes I build exactly the same you did...
Ideally... you build using DEBUG=1
option to make. Then, when you get that guru meditation error, you run the backtrace script from https://github.com/tve/esp32-backtrace with build-TINYPICO/application.elf
as arg and paste the whole shebang in (the git repo has an example). That will tell you/others what the call stack was at the point of crashing...
After the guru meditation error, do you get a backtrace line with lots of addresses? That would be helpful. I just built from master and the crash location seems to be
PC: 0x40093c30 is in coex_bt_high_prio (bt_bb.c:395).
But that assumes I build exactly the same you did... Ideally... you build usingDEBUG=1
option to make. Then, when you get that guru meditation error, you run the backtrace script from https://github.com/tve/esp32-backtrace withbuild-TINYPICO/application.elf
as arg and paste the whole shebang in (the git repo has an example). That will tell you/others what the call stack was at the point of crashing...
Hey @tve :) No backtrace - That's the entire output. I'll re-build the firmware now with DEBUG=1 and see if I can get a backtrace.. hold the phone!
If I set DEBUG=1 when I call make, I get no panic, but it also doesn't work. No web page is served. If I rebuild without DEBUG=1, it panics again.
Also, if I need to run that esp32-backtrace on the session after it panic'd, that's not possible as the device is completely locked up. Have to hard-reset it.
you run the esp32-backtrace on your laptop and paste the backtrace output into it (stdin).
Ok, well I can't seem to get a backtrace at all. Just did the loop again, with no DEBUG=1, I get that panic, but no call stack. With DEBUG=1, I can kinda get it working... not quite how I want, but no panics.
So what does BEDUG=1 do? I'm going to post this extra nugget on the MP github issue I raised.
Oh, I didn't read carefully enough... the error is "Interrupt wdt timeout on CPU1" that means the watchdog triggered, so the backtrace is irrelevant.
@UnexpectedMaker it sounds like this is related to threading and could be a deadlock if the WDT is triggering.
Does it crash using IDF v3? Does it crash when using the STA interface only and connecting to a local network (and still running MicroDNSSrv)? Or is the problem only when the ESP32 acts as an AP?
Hi @dpgeorge - I've not tried all of those combinations, as I only need DNS for when I am using the AP, and all of my projects are now on IDF4 only.
I do know it works fine without the DNS with STA. If I find some time, I'll try to test it out against IDF3.
It's curious that it works fine when DEBUG=1 is set, though I don't really know what changes when DEBUG is on.
Make sure you are running the latest version of TinyWeb before reporting an issue.
Device and/or platform:
Description of problem:
Webserver is running as expected if I connect to my wifi and run the server with the host set to my IP given by the DNS.
But my use case is to set local DNS and start an AP and connect to my AP, and have it serve pages from that - Making a MicroPython WifiManager-esq system for my application.
If I set the DNS to be MicroDNSSrv using this...
dns = MicroDNSSrv.Create({ '*' : '192.168.4.1' })
And connect to it, as soon as it tries to serve the / page, I get a kernel panic!
Expected:
It should just serve me the page. Even the most basic of pages kernel panics. There should never be a kernel panic from a module.
This setup works with MicroWebServ2 as the web server, and my basic sockets based web server. I moved to TinyWeb as I need an uasyncio based web server as I'm transitioning the rest of my app to be asyncio based.
Error:
`>>> import tw I (110680) phy: phy_version: 4180, cb3948e, Sep 12 2019, 16:39:13, 0, 0
Traceback (if applicable):
Additional info:
Please let me know if there is anything else I can provide!
Code: