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

test_splice_rbf_htlc_sigs reads htlc_sigs before the splice lock-in commits

Đã đóng Phù hợp với người mới
#9,640 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 1 ngày

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

Từ ngày 21/10/2026.

  • #9641 của @ksedgwic — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
78/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
c, sqlite
Lĩnh vực
database, testing

Hướng nghiên cứu

Mở tests/test_splicing.py ở gần test_splice_rbf_htlc_sigs và kiểm tra assertion cuối cùng về số hàng cùng phần kiểm tra hiện có về ba hàng. Thay đổi phần kiểm tra cuối cùng để chờ cho đến khi số hàng trong cơ sở dữ liệu đạt giá trị mong đợi, sau đó chạy bài kiểm thử splicing tập trung. Hoàn tất khi bài kiểm thử chờ giao dịch lock-in được commit và xác nhận đáng tin cậy có một hàng trong htlc_sigs.

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

Mô tả

test_splice_rbf_htlc_sigs fails intermittently at its final check with three htlc_sigs rows where it expects one.

tests/test_splicing.py:350: AssertionError
>  assert len(rows) == 1, rows
E  AssertionError: [{'inflight_tx_id': None, 'inflight_tx_outnum': None}, {'inflight_tx_id': b'|\x17!\xa9...', 'inflight_tx_outnum': 0}, {...}]
E  assert 3 == 1

Seen on master at 222078633 in First Integration Tests (6/6), run 39416886545 (2026-10-20, https://github.com/ElementsProject/lightning/actions/runs/39416886545), and on a PR head under valgrind the next day. It is a different failure from the one #9611 fixed; 222078633 is the #9611 merge.

Cause: the test waits for the "CHANNELD_AWAITING_SPLICE to CHANNELD_NORMAL" log line and then reads the database at once. lightningd writes that line from handle_peer_splice_locked(), inside the database transaction that sd_msg_read() wraps around the whole channeld message. The htlc_sigs promotion in wallet_htlcsigs_confirm_inflight() and the inflight cleanup are in the same transaction, which commits only when the handler returns. A read from the test's own sqlite connection in that window still sees the rows from before the lock-in: the active one plus one per candidate.

Fix: wait for the row count, as the test already does for its three-row check.

Part of #9222.

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

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.