BrokePipeError when terminating Strata on Linux

クローズ 初心者向け
#952 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

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

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

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
72/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
linux, python
領域
backend

調査の方向性

serve/server.py の main() の 4129~4145 行付近と、close() の 1253 行付近から始めます。Linux で Ctrl+C を使ってシャットダウンを再現し、エンジンのパイプが閉じた後に self.proc.stdin.close() がどのように動作するかを追跡します。正常終了時に BrokenPipeError のトレースバックが出力されなくなり、既存のシャットダウン動作が維持されれば完了です。

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

説明

After Ctrl+c to terminate the engine i get:

[strata] stopping (Ctrl+C again to end the engine at once) ...
Traceback (most recent call last):
  File "/home/mike/Programs/Strata/serve/server.py", line 4129, in main
    time.sleep(1)                               # Windows never delivers Ctrl+C to an untimed Event.wait()
    ^^^^^^^^^^^^^
KeyboardInterrupt

During handling of the above exception, another exception occurred:

BrokenPipeError: [Errno 32] Broken pipe

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/mike/Programs/Strata/serve/server.py", line 4145, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/mike/Programs/Strata/serve/server.py", line 4136, in main
    close()
  File "/home/mike/Programs/Strata/serve/server.py", line 1253, in close
    self.proc.stdin.close()

The engine itself runs great! Here is my setup:

Strata v0.1.39
Ubuntu 24.04.5 LTS
Intel® Core™ Ultra 5 245K
64Gb RAM
2x RTX 5060ti 16Gb (used --gpus 0,1), RTX 3060 12Gb (not used)

model.json:

{
 "exe": "/home/mike/Programs/Strata/engine/strata",
 "args": [
  "--pack",
  "/home/mike/Programs/Strata-data/packs/swift-iq3_xxs",
  "--native",
  "/home/mike/Programs/Strata-data/models/swift-IQ3_XXS/Swift-Qwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS-00001-of-00002.gguf",
  "--ple-gguf",
  "/home/mike/Programs/Strata-data/models/swift-IQ3_XXS/Swift-Qwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS-00001-of-00002.gguf",
  "--expert-profile",
  "/home/mike/Programs/Strata/data/expert-profile.bin",
  "--expert-cache",
  "auto",
  "--prefill",
  "auto",
  "--spec",
  "4",
  "--mtp",
  "/home/mike/Programs/Strata-data/mtp/rt",
  "--max-context",
  "184320",
  "--kv",
  "q4_0",
  "--kv-resident",
  "32768",
  "--pcie-frac",
  "0.00",
  "--spec-min-p",
  "0.70",
  "--slots",
  "2"
 ],
 "cwd": "/home/mike/Programs/Strata",
 "tokenizer": "/home/mike/Programs/Strata-data/packs/swift-iq3_xxs/tokenizer",
 "model_name": "swift-1.5-iq3_xxs",
 "effort_position": "end",
 "log": "/home/mike/Programs/Strata/strata-swift-iq3_xxs.log",
 "lib_dirs": [
  "/usr/local/cuda-13.3/bin",
  "/usr/local/cuda-13.3/lib64"
 ],
 "port": 1234,
 "gpu": [
  0,
  1
 ],
 "gpus_asked": true,
 "layer_split": "auto"
}
主要言語
C++
スター
11.6k
フォーク
1k
PR マージ指標
30日以内にマージされた PR はありません

環境構築

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

はじめの一歩

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

Niko1221/Strata のほかの issue

Niko1221/Strata の issue をすべて見る

似ている issue

C++ の issue をもっと見る

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

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