core-lightning/gossipd
Rusty Russell 1018b5449b gossipd: handle case where block closes multiple channels requiring node_announcement moves more than once.
If we delete it the first time a channel before it is closed, we will
crash when we try to move it again:

```
$ lightning_gossipd: gossip_store: get delete entry offset 47411992/51608943 (version v23.11-378-gac2a386-modded)
0x1002544b send_backtrace
        common/daemon.c:33
0x1003415f status_failed
        common/status.c:221
0x10016ef3 gossip_store_get_with_hdr
        gossipd/gossip_store.c:466
0x10016faf check_msg_type
        gossipd/gossip_store.c:491
0x1001722b gossip_store_set_flag
        gossipd/gossip_store.c:509
0x1001752b gossip_store_del
        gossipd/gossip_store.c:561
0x10017f5b remove_channel
        gossipd/gossmap_manage.c:299
0x100181cf kill_spent_channel
        gossipd/gossmap_manage.c:1144
0x1001a7df gossmap_manage_new_block
        gossipd/gossmap_manage.c:1183
0x10014673 new_blockheight
        gossipd/gossipd.c:483
0x10014d73 recv_req
        gossipd/gossipd.c:594
```

Reported-by: @microsatosi on Discord
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2024-02-16 16:02:46 +01:00
..
test gossipd: simplify gossip store API. 2024-02-04 09:24:44 +10:30
gossip_store_wire.csv gossipd: strip private updates from gossip_store on startup. 2024-01-31 14:47:33 +10:30
gossip_store.c gossipd: don't assert on redundant flag write, just log message. 2024-02-12 18:05:06 +01:00
gossip_store.h gossipd: clean up flags accessors. 2024-02-12 11:43:33 +01:00
gossipd_peerd_wire.csv channeld: send channel updates and announcements via lightningd. 2022-02-08 11:15:52 +10:30
gossipd_wire.csv gossipd: don't validate UTXOs on our own channels. 2024-02-04 09:24:44 +10:30
gossipd.c gossipd: simplify gossip store API. 2024-02-04 09:24:44 +10:30
gossipd.h gossipd: remove routing.c and other unused functions. 2024-02-04 09:24:44 +10:30
gossmap_manage.c gossipd: handle case where block closes multiple channels requiring node_announcement moves more than once. 2024-02-16 16:02:46 +01:00
gossmap_manage.h gossipd: simplify gossip store API. 2024-02-04 09:24:44 +10:30
Makefile gossipd: remove routing.c and other unused functions. 2024-02-04 09:24:44 +10:30
queries.c gossipd: make the query response code use gossmap_manage. 2024-02-04 09:24:44 +10:30
queries.h gossipd: remove routing.c and other unused functions. 2024-02-04 09:24:44 +10:30
seeker.c gossipd: make the seeker code use gossmap_manage. 2024-02-04 09:24:44 +10:30
seeker.h gossipd: have seeker quert interfaces take an id, not a struct peer. 2024-02-04 09:24:44 +10:30
sigcheck.c gossipd: take signature checks out of routing.c 2024-02-04 09:24:44 +10:30
sigcheck.h gossipd: take signature checks out of routing.c 2024-02-04 09:24:44 +10:30
txout_failures.c gossipd: take txout failure cache out of routing.c 2024-02-04 09:24:44 +10:30
txout_failures.h gossipd: take txout failure cache out of routing.c 2024-02-04 09:24:44 +10:30