Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

test_splice_rbf_htlc_sigs reads htlc_sigs before the splice lock-in commits

Abierto Apto para principiantes
#9,640 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@ksedgwic ya está trabajando en esto.

Desde el 21/10/2026.

  • #9641 de @ksedgwic — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
c, sqlite
Área
database, testing

Línea de trabajo

Abre tests/test_splicing.py cerca de test_splice_rbf_htlc_sigs y revisa la aserción final del recuento de filas y la comprobación existente de tres filas. Cambia la comprobación final para que espere hasta que el recuento de filas de la base de datos alcance el valor esperado y, luego, ejecuta la prueba de splicing específica. La tarea está terminada cuando espera a que se confirme la transacción de lock-in y detecta de forma fiable una fila en htlc_sigs.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
C
Estrellas
3.1k
Forks
1k
Merge medio
4 d 13 h
PR fusionados (30 d)
29

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de ElementsProject/lightning

Todos los issues de ElementsProject/lightning

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.