Browse Source

gossipd: count deleted records correctly when loading gossip_store.

The result of an incorrect count was that we failed on next compaction.

Fixes: #2743
Fixes: #2742
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
pull/2938/head
Rusty Russell 5 years ago
parent
commit
eb5cc47bdd
  1. 2
      gossipd/gossip_store.c
  2. 1
      tests/test_gossip.py

2
gossipd/gossip_store.c

@ -541,6 +541,8 @@ bool gossip_store_load(struct routing_state *rstate, struct gossip_store *gs)
/* Skip deleted entries */
if (be32_to_cpu(hdr.len) & GOSSIP_STORE_LEN_DELETED_BIT) {
/* Count includes deleted! */
gs->count++;
gs->deleted++;
goto next;
}

1
tests/test_gossip.py

@ -1155,7 +1155,6 @@ def test_gossip_store_compact(node_factory, bitcoind):
wait_for(lambda: l2.daemon.is_in_log('gossip_store: Read '))
@pytest.mark.xfail(strict=True)
@unittest.skipIf(not DEVELOPER, "need dev-compact-gossip-store")
def test_gossip_store_compact_restart(node_factory, bitcoind):
l2 = setup_gossip_store_test(node_factory, bitcoind)

Loading…
Cancel
Save