You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It happens both for core version 4.2.1 and 4.3.0. When replacing SimpleMDNS with LEAmDNS, this works.
I found a reference to this error here: raspberrypi/pico-sdk#1281. So I bumped LWIP_DNS from 1 to 2 in lwipopts.h and recompiled libpico, and then the MCVE works. However, I'm not sure if this is a suitable fix or we should find out why SimpleMDNS needs more timers than LEAmDNS.
The text was updated successfully, but these errors were encountered:
Thanks for the MCVE and report. I actually posted in that thread because we had this kind of issue when SDK 1.5.0 came out.
The SimpleMDNS/.local PR tried to increase the needed buffers, but evidently it's not enough. Let me read up and see if there's a more direct way of increasing the timeouts than bumping that DNS value. Worst case, we can use that.
What's going on is the while LWIP stack uses its own internal scheduling system (MEMP_TIMEOUT) and not any external timers, and space for them all needs to be statically allocated. LeaMDNS is just another LWIP client and no different than any other connection so it's not using those internal timers directly.
In my testing I used ArduinoOTA (since I didn't have anything else that needed MDNS) but it uses UDP only. So, no need for a TCP retransmit timeout and there were enough timers. Here, you have a TCP connection as well as MDNS so we need add'l timeouts...
In the PR I just bumped up the placeholder we were using to increase timeouts for other reasons (1.5.0 SDK, etc.). It should be a little lower memory than setting up 2 DNS request buffers (which in the Arduino case can't ever actually use but one) but it's the same idea, increase LWIP's internal MEMP_NUM_SYS_TIMEOUT without actually changing any LWIP files...
Using a Pico W (RP2040), SimpleMDNS in combination with
WiFiClient
leads to a panic due to an assert in LWIP:sys_timeout: timeout != NULL, pool MEMP_SYS_TIMEOUT is empty
Here’s a MCVE:
It happens both for core version 4.2.1 and 4.3.0. When replacing SimpleMDNS with LEAmDNS, this works.
I found a reference to this error here: raspberrypi/pico-sdk#1281. So I bumped
LWIP_DNS
from 1 to 2 inlwipopts.h
and recompiledlibpico
, and then the MCVE works. However, I'm not sure if this is a suitable fix or we should find out why SimpleMDNS needs more timers than LEAmDNS.The text was updated successfully, but these errors were encountered: