app: a Debug launch sometimes panics with ISCONN on a network thread

オープン
#318 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
zig
領域
networking

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

bug

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

主要言語
Zig
スター
1.5k
フォーク
40
平均マージ
7時間 16分
マージ済み PR(30日)
762

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

fizzyedit/fizzy のほかの issue

fizzyedit/fizzy の issue をすべて見る

似ている issue

Networking の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。