Skip to content

Fix bookkeeper parallel crash#8642

Merged
rustyrussell merged 2 commits intoElementsProject:masterfrom
rustyrussell:guilt/fix-bookkeeper-parallel-crash
Nov 3, 2025
Merged

Fix bookkeeper parallel crash#8642
rustyrussell merged 2 commits intoElementsProject:masterfrom
rustyrussell:guilt/fix-bookkeeper-parallel-crash

Conversation

@rustyrussell
Copy link
Contributor

@michael1011 reported a crash in bookkeeper, which indeed happened when multiple commands were in flight during startup. Refreshing in parallel is harmless, except for the assertion...

@rustyrussell rustyrussell added this to the v25.12 milestone Oct 28, 2025
@rustyrussell rustyrussell force-pushed the guilt/fix-bookkeeper-parallel-crash branch from 30782ea to fcfe7b9 Compare October 29, 2025 03:21
If both refresh new events, we will get an assertion:

```
```

Signed-off-by: Rusty Russell <[email protected]>
```
bookkeeper: plugins/bkpr/bookkeeper.c:1226: parse_and_log_chain_move: Assertion `e->db_id > bkpr->chainmoves_index' failed.
bookkeeper: FATAL SIGNAL 6 (version v25.09-245-g901714b-modded)
0x5d7d8718b40f send_backtrace
        common/daemon.c:36
0x5d7d8718b4ab crashdump
        common/daemon.c:81
0x7a6086c4532f ???
        ./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x7a6086c9eb2c __pthread_kill_implementation
        ./nptl/pthread_kill.c:44
0x7a6086c9eb2c __pthread_kill_internal
        ./nptl/pthread_kill.c:78
0x7a6086c9eb2c __GI___pthread_kill
        ./nptl/pthread_kill.c:89
0x7a6086c4527d __GI_raise
        ../sysdeps/posix/raise.c:26
0x7a6086c288fe __GI_abort
        ./stdlib/abort.c:79
0x7a6086c2881a __assert_fail_base
        ./assert/assert.c:96
0x7a6086c3b516 __assert_fail
        ./assert/assert.c:105
0x5d7d8717505d parse_and_log_chain_move
        plugins/bkpr/bookkeeper.c:1226
0x5d7d871754f4 listchainmoves_done
        plugins/bkpr/bookkeeper.c:169
0x5d7d87182a4b handle_rpc_reply
        plugins/libplugin.c:1072
0x5d7d87182b5c rpc_conn_read_response
        plugins/libplugin.c:1361
0x5d7d871ba660 next_plan
        ccan/ccan/io/io.c:60
0x5d7d871bab31 do_plan
        ccan/ccan/io/io.c:422
0x5d7d871babee io_ready
        ccan/ccan/io/io.c:439
```

Reported-by: @michael1011
Signed-off-by: Rusty Russell <[email protected]>
Changelog-Fixed: plugins: assertion crash in bookkeeper when fresh records arrive while multiple queries in progress.
@rustyrussell rustyrussell force-pushed the guilt/fix-bookkeeper-parallel-crash branch from fcfe7b9 to 108f348 Compare November 3, 2025 02:07
@rustyrussell rustyrussell merged commit bd17983 into ElementsProject:master Nov 3, 2025
36 of 39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant