test_splice_rbf_htlc_sigs reads htlc_sigs before the splice lock-in commits
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ElementsProject/lightning
-
test_announce_and_connect_via_dns binds a fixed port that other tests' nodes can be handedPosiblemente ocupada @ksedgwic la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
ElementsProject/lightning#9642 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
ElementsProject/lightning#9634 ·
Los mantenedores suelen responder en 2 días
-
plugins/recover: missing comma in nodes_for_gossip concatenates two bootstrap addresses into invalid addressPosiblemente ocupada @bhuvan-somisetty la tomó hace 7 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
ElementsProject/lightning#9630 ·
Los mantenedores suelen responder en 2 días
-
common/json_parse: json_to_bitcoin_amount fails to detect overflow and accepts negative/empty inputsPosiblemente ocupada @bhuvan-somisetty la tomó hace 11 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ElementsProject/lightning#9617 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
ElementsProject/lightning#9616 · 1 comentario ·
Los mantenedores suelen responder en 2 días
Todos los issues de ElementsProject/lightning
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
sumatrapdfreader/sumatrapdf#6403 ·
-
followup
Dificultad 1/5 Menos de una hora Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
oetiker/rrdtool-1.x#1392 ·
-
bottomless: finished S3 upload tasks are never reaped, so sqld memory grows by ~10 KB per WAL batchAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
tursodatabase/libsql#2298 ·
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100