Skip to content

Hard fault crash when using HTTPServer: ESP32-C3 #9749

Description

@dhalbert

Running this test program, with a settings.toml containing valid values for CIRCUITPY_WIFI_SSID and CIRCUITPY_WIFI_PASSWORD, will cause a hard fault with a few minutes.

It takes around 1-5 minutes to restart in safe mode, though I have seen it run longer. No interaction with the HTTP server is needed. I simply restart code.py and wait.

import wifi
import socketpool
from adafruit_httpserver import Server
import time

time.sleep(5)
print("IP addr", wifi.radio.ipv4_address)

pool = socketpool.SocketPool(wifi.radio)
server = Server(pool, debug=False)

# port 80 will get EADDRINUSE due to web workflow
# Either IP adddress will cause a crash eventually.
server.start("0.0.0.0", 8000)
#server.start(str(wifi.radio.ipv4_address), 8000)

while True:
   try:
      server.poll()
   except Exception as e:
      print(type(e))

Either server.start() can cause a crash: the wildcard IP address or the actual IP address don't matter.

I have reproduced this only on a QT Py ESP32-C3. I cannot reproduce on a QT ESP32-S3, with no PSRAM.

[replaces #9735]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions