Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

`splice_update` hangs and never returns, even after disconnecting peer

Đang mở
#9,599 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

@vincenzopalazzo đang làm issue này rồi.

Từ ngày 7/10/2026.

  • #9605 của @vincenzopalazzo — đang mở

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
52/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
c
Lĩnh vực
distributed-systems

Hướng nghiên cứu

Start by reproducing the reported createpsbt → utxoupdatepsbt → splice_init → splice_update sequence. Trace the splice_update handling around the logged WIRE_TX_ADD_INPUT and WIRE_TX_COMPLETE exchange; the issue does not name a file or test. Done means the RPC no longer hangs in this case, including after peer disconnection, and the behavior is covered by a regression test.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Maybe the I/O plumbing has a leak somewhere.

Here is what I did:

  1. I called Bitcoin Core's createpsbt to create a PSBT with three inputs and no outputs.
  2. I called Bitcoin Core's utxoupdatepsbt to populate the UTxO information for the inputs.
  3. I called CLN's splice_init, passing the channel_id, the relative_amount that I was proposing to add to the channel, the initialpsbt from utxoupdatepsbt, and feerate_per_kw=75. This returned a PSBT with my contributed three inputs plus the existing channel outpoint as a fourth input and also one output that would have become the new channel outpoint. (There was no change output because my relative_amount was exactly equal to the sum of my contributed input amounts minus the fee.)
  4. I called CLN's splice_update, passing the channel_id and the psbt from splice_init. This simply hanged and never returned.
  5. I tried forcibly disconnecting the peer, which worked, but the splice_update RPC still did not return.

The log contains:

2026-10-05T03:57:51.888Z DEBUG   03…ee-channeld-chan#256329: Getting handle_splice_init psbt version 2 (RBF?: n)
2026-10-05T03:57:51.888Z DEBUG   03…ee-channeld-chan#256329: Sending peer that we want to STFU.
2026-10-05T03:57:51.888Z DEBUG   03…ee-channeld-chan#256329: peer_out WIRE_STFU
2026-10-05T03:57:51.912Z DEBUG   03…ee-channeld-chan#256329: peer_in WIRE_STFU
2026-10-05T03:57:51.912Z DEBUG   03…ee-channeld-chan#256329: STFU initiator local.
2026-10-05T03:57:51.912Z UNUSUAL 03…ee-channeld-chan#256329: STFU complete: we are quiescent
2026-10-05T03:57:51.912Z UNUSUAL 03…ee-channeld-chan#256329: STFU complete: setting stfu_wait_single_msg = true
2026-10-05T03:57:51.912Z DEBUG   03…ee-channeld-chan#256329: peer_out WIRE_SPLICE
2026-10-05T03:57:51.946Z DEBUG   03…ee-channeld-chan#256329: peer_in WIRE_SPLICE_ACK
2026-10-05T03:57:51.946Z DEBUG   03…ee-channeld-chan#256329: Sending master 7208
2026-10-05T03:57:51.947Z DEBUG   03…ee-channeld-chan#256329: ... , awaiting 7209
2026-10-05T03:57:51.948Z DEBUG   03…ee-channeld-chan#256329: Got it!
2026-10-05T04:01:10.119Z DEBUG   03…ee-channeld-chan#256329: Sending master 7208
2026-10-05T04:01:10.135Z DEBUG   03…ee-channeld-chan#256329: ... , awaiting 7209
2026-10-05T04:01:10.136Z DEBUG   03…ee-channeld-chan#256329: Got it!
2026-10-05T04:01:10.136Z DEBUG   03…ee-channeld-chan#256329: ictx->shared_outpoint=a1…a9:8
2026-10-05T04:01:10.136Z DEBUG   03…ee-channeld-chan#256329: point=a1…a9:8
2026-10-05T04:01:10.136Z DEBUG   03…ee-channeld-chan#256329: Adding shared input 36…67
2026-10-05T04:01:10.136Z DEBUG   03…ee-channeld-chan#256329: peer_out WIRE_TX_ADD_INPUT
2026-10-05T04:01:10.160Z DEBUG   03…ee-channeld-chan#256329: peer_in WIRE_TX_COMPLETE

I'm not sure why the success log messages from the STFU exchange should be considered UNUSUAL. That looks wrong to me.

Anyway, we sent WIRE_TX_ADD_INPUT and received WIRE_TX_COMPLETE, and then we went on vacation. ☹️👎🏻

This was on CLN v26.06.8.

Ngôn ngữ chính
C
Star
3.1k
Fork
1k
Merge trung bình
3 ngày 10 giờ
Pull request đã merge (30 ngày)
40

Chuẩn bị môi trường

  • Có Dockerfile hoặc tệp Docker Compose
  • Có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của ElementsProject/lightning

Tất cả issue của ElementsProject/lightning

Issue tương tự

Thêm issue về C

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.