事象(実測 — ACP responsibility:sessionhost-steward の観測台帳から)
- 対象 instance:
com.masui.doeff-sessionhost-herdr、2026-07-27 16:0xZ 起動 〜 2026-07-28 11:27Z 停止。
- errlog(
~/Library/Logs/doeff-sessionhost-herdr.log)に Broken pipe 4,242 行。時間分布は進行性: 前半 ≈1.4/分 → 後半 ≈6.1/分(19 時間で漸増)。
- 同窓に
herdr_call の Traceback 18 本。
- launchd job の手動再登録(bootout + bootstrap、runs 7→1)でのみ解消。 KeepAlive respawn では直っていない。以後の instance(07-28 11:27Z 起動)では再発なし。
エラー経路(コード)
doeff_agents/sessionhost/substrate_herdr.hy
herdr-call の (.sendall sock line) — 接続は都度張る設計(connect → sendall → recv、finally close)
- 呼び手:
herdr-agent-pane-id-io(herdr-call "agent.get" {"target" session-name})← host.hy の substrate-present 経路
- 上流 = herdr アプリ socket
~/.config/herdr/herdr.sock
追加観測(切り分け材料)
- Broken pipe は turn RPC 活動量にほぼ比例する(steward v13 実測: BP/counters 増分比 = 1.20〜1.25 で安定)。時間あたり率だけで劣化を判定すると活動量で交絡する。劣化事案当時の counters はプロセス内累積で遡及不能のため、当時の活動量一定性は検証できていない。
- socket 無応答(daemon.status probe が応答本文を返さない)も同 instance で 4 エピソード観測されたが、各 1 sensor 周期(≈5 分)で自己復旧。
- 接続都度張りの設計なのに instance の再登録で直る(= instance 側に progressive な状態がある)のが不整合点。fd リーク / herdr 側の per-client 状態 / backlog あたりが仮説だが未検証。
調査の問い
- sendall の Broken pipe = 相手(herdr app)が接続を受けて即閉じる条件は何か(herdr 側の受理経路・backlog・rate limit)。
- instance 再登録で直る progressive 状態の正体(daemon プロセス側の fd / スレッド / キューの漏れ?)。
- 再現条件(turn RPC 活動量との比例を踏まえた負荷条件)。
備考
- 検出面: 当時 ACP 側 sensor の正規表現欠陥(
^Traceback 行頭アンカーが doeff Traceback 形式を 88% 取り落とし)で Traceback 18 本は不可視だった。ACP 側で修正済みのため、同型が再発すれば今度は 5 分粒度で検出され、即時級(サービス停止・DB 破損)は operator へ直通する(ACP ADR sensor-breach-severity 85bc0b)。
- 起票元: ACP operator-queue
responsibility:sessionhost-steward の operator 裁定 2026-07-29(相談席 decide-sessionhost-alert-policy が代行起票)。steward は read-only のため本 issue の実調査は doeff 側の担当が必要。
事象(実測 — ACP responsibility:sessionhost-steward の観測台帳から)
com.masui.doeff-sessionhost-herdr、2026-07-27 16:0xZ 起動 〜 2026-07-28 11:27Z 停止。~/Library/Logs/doeff-sessionhost-herdr.log)に Broken pipe 4,242 行。時間分布は進行性: 前半 ≈1.4/分 → 後半 ≈6.1/分(19 時間で漸増)。herdr_callの Traceback 18 本。エラー経路(コード)
doeff_agents/sessionhost/substrate_herdr.hyherdr-callの(.sendall sock line)— 接続は都度張る設計(connect → sendall → recv、finally close)herdr-agent-pane-id-io(herdr-call "agent.get" {"target" session-name})←host.hyの substrate-present 経路~/.config/herdr/herdr.sock追加観測(切り分け材料)
調査の問い
備考
^Traceback行頭アンカーがdoeff Traceback形式を 88% 取り落とし)で Traceback 18 本は不可視だった。ACP 側で修正済みのため、同型が再発すれば今度は 5 分粒度で検出され、即時級(サービス停止・DB 破損)は operator へ直通する(ACP ADR sensor-breach-severity 85bc0b)。responsibility:sessionhost-stewardの operator 裁定 2026-07-29(相談席 decide-sessionhost-alert-policy が代行起票)。steward は read-only のため本 issue の実調査は doeff 側の担当が必要。