Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Web Workflow Locks Up

Ouverte
#11,616 6 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
12/100
Type d'issue
Bug
Clarté
À clarifier
Activité
Active
Stack technique
c, python

Piste de recherche

The payload points at the device's web workflow HTTP server and at circup's _get_modules_http_dir_mods in backends.py, which is a different project. The reporter's ping trace shows heavy packet loss, so reproducing the lockup needs Wi-Fi and a board, not just reading code. Done would mean a root cause for the board freezing under concurrent HTTP requests, confirmed by the maintainers; the thread has no agreed diagnosis yet.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug esp32 web workflow
CircuitPython version and board name
Adafruit CircuitPython 10.3.1 on 2026-09-14; Adafruit Feather ESP32 V2 with ESP32
Code/REPL
circup --host 172.16.10.10 --password test1234 install adafruit_minimqtt
Found device adafruit_feather_esp32_v2 at http://:[email protected]:80, running CircuitPython 10.3.1.
Using latest bundle for adafruit/Adafruit_CircuitPython_Bundle (20261016).
Using latest bundle for adafruit/CircuitPython_Community_Bundle (20261008).
Searching for dependencies for: ['adafruit_minimqtt']
Traceback (most recent call last):
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/urllib3/response.py", line 929, in _error_catcher
    yield
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/urllib3/response.py", line 1459, in read_chunked
    self._update_chunk_length()
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/urllib3/response.py", line 1367, in _update_chunk_length
    line = self._fp.fp.readline(_MAX_CHUNK_LINE_LENGTH + 1)  # type: ignore[union-attr]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/socket.py", line 707, in readinto
    return self._sock.recv_into(b)
           ^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/requests/models.py", line 937, in generate
    yield from self.raw.stream(chunk_size, decode_content=True)
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/urllib3/response.py", line 1284, in stream
    yield from self.read_chunked(amt, decode_content=decode_content)
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/urllib3/response.py", line 1436, in read_chunked
    with self._error_catcher():
  File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__
    self.gen.throw(value)
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/urllib3/response.py", line 934, in _error_catcher
    raise ReadTimeoutError(self._pool, None, "Read timed out.") from e  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='172.16.10.10', port=80): Read timed out.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/chris/dev/worldclock/vbuild/bin/circup", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/click/core.py", line 1631, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/click/core.py", line 1552, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/click/core.py", line 2032, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/click/core.py", line 1415, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/click/core.py", line 910, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/click/decorators.py", line 34, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/circup/commands.py", line 444, in install
    device_modules = ctx.obj["backend"].get_device_versions()
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/circup/backends.py", line 768, in get_device_versions
    return self.get_modules(urljoin(self.device_location, self.LIB_DIR_PATH))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/circup/backends.py", line 64, in get_modules
    return self._get_modules(device_url)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/circup/backends.py", line 448, in _get_modules
    return self._get_modules_http(device_lib_path)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/circup/backends.py", line 479, in _get_modules_http
    self._get_modules_http_dir_mods(auth, directory_mods, result, url)
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/circup/backends.py", line 500, in _get_modules_http_dir_mods
    with self.session.get(
         ^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/requests/sessions.py", line 671, in get
    return self.request("GET", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/requests/sessions.py", line 651, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/requests/sessions.py", line 827, in send
    r.content
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/requests/models.py", line 1042, in content
    self._content = b"".join(self.iter_content(CONTENT_CHUNK_SIZE)) or b""
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/chris/dev/worldclock/vbuild/lib/python3.12/site-packages/requests/models.py", line 943, in generate
    raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='172.16.10.10', port=80): Read timed out.
Behavior

Board locks up and becomes unresponsive while trying to upload files with either circup or the web page. I test with circup because it actually gives a clear timeout error.
At times the serial console also locks up and requires a soft reset with the button to start up again.
This is also oddly intermittent - I can work successfully with the board for an hour with no issues, and then issues start without any apparent trigger.

Description

No response

Additional information

Ping trace during a circup attempt is below. The first very long response is from when the board boots.

PING 172.16.10.10 (172.16.10.10) 56(84) bytes of data.
64 bytes from 172.16.10.10: icmp_seq=1 ttl=64 time=3004 ms
64 bytes from 172.16.10.10: icmp_seq=13 ttl=64 time=88.9 ms
64 bytes from 172.16.10.10: icmp_seq=14 ttl=64 time=150 ms
64 bytes from 172.16.10.10: icmp_seq=15 ttl=64 time=161 ms
64 bytes from 172.16.10.10: icmp_seq=16 ttl=64 time=41.7 ms
64 bytes from 172.16.10.10: icmp_seq=17 ttl=64 time=74.5 ms
64 bytes from 172.16.10.10: icmp_seq=18 ttl=64 time=101 ms
64 bytes from 172.16.10.10: icmp_seq=19 ttl=64 time=152 ms
64 bytes from 172.16.10.10: icmp_seq=20 ttl=64 time=129 ms
64 bytes from 172.16.10.10: icmp_seq=21 ttl=64 time=48.2 ms
64 bytes from 172.16.10.10: icmp_seq=22 ttl=64 time=13.8 ms
64 bytes from 172.16.10.10: icmp_seq=23 ttl=64 time=140 ms
64 bytes from 172.16.10.10: icmp_seq=24 ttl=64 time=287 ms
64 bytes from 172.16.10.10: icmp_seq=25 ttl=64 time=25.7 ms
64 bytes from 172.16.10.10: icmp_seq=26 ttl=64 time=586 ms
64 bytes from 172.16.10.10: icmp_seq=27 ttl=64 time=80.7 ms
64 bytes from 172.16.10.10: icmp_seq=28 ttl=64 time=151 ms
64 bytes from 172.16.10.10: icmp_seq=29 ttl=64 time=327 ms
64 bytes from 172.16.10.10: icmp_seq=30 ttl=64 time=93.2 ms
64 bytes from 172.16.10.10: icmp_seq=31 ttl=64 time=446 ms
64 bytes from 172.16.10.10: icmp_seq=32 ttl=64 time=148 ms
64 bytes from 172.16.10.10: icmp_seq=33 ttl=64 time=160 ms
64 bytes from 172.16.10.10: icmp_seq=35 ttl=64 time=350 ms
64 bytes from 172.16.10.10: icmp_seq=37 ttl=64 time=140 ms
64 bytes from 172.16.10.10: icmp_seq=41 ttl=64 time=238 ms
64 bytes from 172.16.10.10: icmp_seq=44 ttl=64 time=128 ms
64 bytes from 172.16.10.10: icmp_seq=45 ttl=64 time=147 ms
64 bytes from 172.16.10.10: icmp_seq=46 ttl=64 time=56.5 ms
64 bytes from 172.16.10.10: icmp_seq=60 ttl=64 time=188 ms
64 bytes from 172.16.10.10: icmp_seq=61 ttl=64 time=544 ms
64 bytes from 172.16.10.10: icmp_seq=63 ttl=64 time=228 ms
64 bytes from 172.16.10.10: icmp_seq=87 ttl=64 time=297 ms
^C
--- 172.16.10.10 ping statistics ---
100 packets transmitted, 32 received, 68% packet loss, time 100819ms
rtt min/avg/max/mdev = 13.846/272.676/3003.634/509.513 ms, pipe 3

Langage dominant
C
Étoiles
4.6k
Forks
1.4k
Merge moyen
1 j 1 h
PR mergées (30 j)
161

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de adafruit/circuitpython

Toutes les issues de adafruit/circuitpython

Issues similaires

Plus d'issues C

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.