Web Workflow Locks Up
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 12/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 活発
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- C
- スター
- 4.6k
- フォーク
- 1.4k
- 平均マージ
- 1日 1時間
- マージ済み PR(30日)
- 161
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
adafruit/circuitpython のほかの issue
-
nordic
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
adafruit/circuitpython#11611 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
adafruit/circuitpython#11606 ·
メンテナーはふだん 1 日以内に返信
-
busio zephyr
難易度 5/5 1週間以上 初心者へのやさしさ 18/100
adafruit/circuitpython#11605 ·
メンテナーはふだん 1 日以内に返信
-
busio zephyr
難易度 4/5 3〜5日 初心者へのやさしさ 28/100
adafruit/circuitpython#11604 ·
メンテナーはふだん 1 日以内に返信
-
zephyr: do dynamic bus allocation on CLUE boards対応中かも @dhalbert が 3 日前に担当しました。 オープンbusio zephyr
難易度 4/5 3〜5日 初心者へのやさしさ 22/100
adafruit/circuitpython#11603 ·
メンテナーはふだん 1 日以内に返信
adafruit/circuitpython の issue をすべて見る
似ている issue
-
mewencode: base256[] and base128[] are indexed out of bounds by a non-ASCII octet対応中かも @kazu-yamamoto が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
kazu-yamamoto/Mew#276 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 91/100
FujiNetWIFI/fujinet-firmware#2045 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
area:gates area:gfx found-by:critic kind:gate-defect
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
InauguralSystems/EigenScript#1825 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 75/100
gbdev/homebrewhub-submit#20 ·