app: a Debug launch sometimes panics with ISCONN on a network thread
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- zig
- Domain
- networking
Research direction
The payload names no files. Start by searching the fizzy code for std network connect calls on the launch path: the update check, the plugin store or registry fetch, Drive, and the single-instance socket. Check whether any of them calls connect again after a non-blocking connect has already completed. Done means either a launch loop in CI reproduces the ISCONN panic with a clear cause, or the bug is filed upstream with Zig and a fizzy-side fix is merged.
Written by the indexing model from the issue text.
Description
About 1 Debug launch in 10 panics on a background network thread with:
programmer bug caused syscall error: ISCONN
It happens inside Zig std's concurrent connect. Seen while doing #313's local verdict runs on macOS. It isn't caused by that work: it shows up at launch, before any tape runs.
EISCONN from connect means the socket is already connected. A non-blocking connect that completed is being connected again (a retry or poll loop calling connect a second time instead of reading SO_ERROR), or a socket is reused. Std treats it as unreachable, so Debug panics and release builds have undefined behaviour.
To do:
- Find which fizzy code does a network connect at launch (update check, plugin store or registry fetch, Drive, the single-instance socket) and how it calls std.
- Decide whether the bug is fizzy's use of the API or std's. If std's, report it upstream to Zig with a reproduction; if fizzy's, fix it here.
It's intermittent, so the verdict run can't gate on it yet. A CI loop of launches would show it.
🤖 Generated with Claude Code
- Dominant language
- Zig
- Stars
- 1.5k
- Forks
- 40
- Avg merge
- 5h 35m
- Merged PRs (30d)
- 151
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from fizzyedit/fizzy
-
replay: bench-replay no longer compiles, and nothing in CI builds itPossibly taken A pull request linked to this issue is open or already merged. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
fizzyedit/fizzy#306 · 3 comments ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 8/100
Maintainers usually reply within 1 day
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 12/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 12/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 71/100
t4t5/omdrop-owl#14 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
EasyTier/EasyTier#2672 · 1 comment ·
Maintainers usually reply within 1 day
-
Adding a room to a space emits an unhandled match errorPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 Half a day Newbie friendliness 84/100
-
List query parameters are percent-encoded twicePossibly taken @RaphaelFakhri claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day