fundchannel reports 'Owning subdaemon openingd died (62208)' on peer disconnect after WIRE_OPEN_CHANNEL
メンテナーはふだん 2 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- c
- 領域
- api, backend, networking
調査の方向性
WIRE_OPEN_CHANNEL の後に fundchannel_start を openingd 内で追跡し、status_peer_connection_lost と親プロセスの wait-status 処理に焦点を当てます。提供された lightning-cli コマンドとログで peer の切断を再現します。完了条件は、既存のリモート ERROR の動作を維持したまま、RPC が数値の subdaemon wait status ではなく peer connection loss のメッセージを報告することです。
索引モデルが issue の本文から書いたものです。
説明
Issue and Steps to Reproduce
When attempting to open a channel to a peer, fundchannel fails with the low-level error:
{
"code": -1,
"message": "Owning subdaemon openingd died (62208)",
"data": {
"id": "0322d0e43b3d92d30ed187f4e101a9a9605c3ee5fc9721e6dac3ce3d7732fbb13e",
"method": "fundchannel_start"
}
}
Command used:
lightning-cli --lightning-dir=/home/vp/.lightning-experimental/lightning -k \
fundchannel \
id=0322d0e43b3d92d30ed187f4e101a9a9605c3ee5fc9721e6dac3ce3d7732fbb13e@164.92.106.32:9735 \
amount=all \
announce=true
The relevant logs show that the connection succeeds, openingd sends WIRE_OPEN_CHANNEL, and then the peer connection is lost while waiting for accept_channel:
2026-05-04 23:06:40.354373 plugin-spenderp mfc 8, dest 0: connect 0322d0e43b3d92d30ed187f4e101a9a9605c3ee5fc9721e6dac3ce3d7732fbb13e.
2026-05-04 23:06:40.830696 connectd Connected out, starting crypto
2026-05-04 23:06:41.248657 connectd peer_out WIRE_INIT
2026-05-04 23:06:41.318478 connectd peer_in WIRE_INIT
2026-05-04 23:06:41.319001 plugin-spenderp mfc 8, dest 0: connect done.
2026-05-04 23:06:41.371062 plugin-spenderp mfc 8, dest 0: fundchannel_start 0322d0e43b3d92d30ed187f4e101a9a9605c3ee5fc9721e6dac3ce3d7732fbb13e.
2026-05-04 23:06:41.402490 openingd-chan#55 pid 921769, msgfd 95
2026-05-04 23:06:41.403137 openingd-chan#55 funder_channel_start
2026-05-04 23:06:41.403180 openingd-chan#55 Setting their reserve to 128171sat
2026-05-04 23:06:41.403217 openingd-chan#55 peer_out WIRE_OPEN_CHANNEL
2026-05-04 23:06:41.403254 openingd-chan#55 billboard: Funding channel start: offered, now waiting for accept_channel
2026-05-04 23:06:41.986147 openingd-chan#55 Peer connection lost
2026-05-04 23:06:41.986161 chan#55 Owning subdaemon openingd died (62208)
2026-05-04 23:06:41.986173 lightningd peer_disconnected
2026-05-04 23:06:42.026250 plugin-spenderp mfc 8, dest 0: failed! fundchannel_start 0322d0e43b3d92d30ed187f4e101a9a9605c3ee5fc9721e6dac3ce3d7732fbb13e: {"code":-1,"message":"Owning subdaemon openingd died (62208)"}.
There is no peer_in WIRE_ERROR in this attempt. So this seems to be a remote disconnect after our open_channel, but the RPC error returned to the user is the internal wait status / subdaemon death:
Owning subdaemon openingd died (62208)
This is confusing because it looks like openingd crashed, while the logs indicate the controlled exit path for peer connection loss.
A previous attempt with announce=false against another peer gave a clean remote error:
They sent ERROR channel ...: private channels are not accepted
So the issue here is not that every peer policy rejection is opaque; this specific case is a disconnect/EOF surfaced as a subdaemon death.
Expected behavior: fundchannel should surface something like:
Peer connection lost while waiting for accept_channel
or:
Peer disconnected during fundchannel_start after WIRE_OPEN_CHANNEL
rather than:
Owning subdaemon openingd died (62208)
I think 62208 is the parent-visible wait status for an exit status of 243 (0xf3), i.e. the status_peer_connection_lost path, but this leaks an implementation detail to the RPC user.
getinfo output
I am running an experimental build. From the current tree:
git describe: v26.04.1-50-ga7f9aae9f
commit: a7f9aae9f
branch: claude/epic-black
lightningd --version from this checkout prints:
v25.09
I can provide the full exported logs if useful.
- 主要言語
- C
- スター
- 3.1k
- フォーク
- 1k
- 平均マージ
- 4日 2時間
- マージ済み PR(30日)
- 45
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
ElementsProject/lightning のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
ElementsProject/lightning#9593 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
ElementsProject/lightning#9322 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
ElementsProject/lightning#9206 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
ElementsProject/lightning#9187 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 2 日以内に返信
-
QA
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
ElementsProject/lightning#9117 · コメント 2 件 ·
メンテナーはふだん 2 日以内に返信
ElementsProject/lightning の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
mypaint/libmypaint#209 ·
-
[LOGO] Keenetic OS対応中かも @Ivan-Alone が今日担当しました。 オープンlogo request
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
fastfetch-cli/fastfetch#2646 ·
メンテナーはふだん 1 日以内に返信
-
rc_runtime_activate_richpresence leaves a half-initialised entry when the buffer allocation failsオープン
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
RetroAchievements/rcheevos#558 ·
-
good first issue priority:low type:docs
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
crazy-goat/php-fpm-ng#920 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100