core-lightning/gossipd
Rusty Russell 11de721ba9 gossipd: fix gossmap race.
When upgrading a channel from private to public, we would delete the
private channel then add the public one.  However, this is visible in
the gossmap!  In particular, the node may be removed from the gossmap
and then re-added, so it may temporarily vanish!

I was seeing an occasional assertion inside node_factory.line_graph:

```
@pytest.mark.developer
    def test_reconnect_remote_sends_no_sigs(node_factory):
        """We re-announce, even when remote node doesn't send its announcement_signatures on reconnect.
        """
>       l1, l2 = node_factory.line_graph(2, wait_for_announce=True, opts={'may_reconnect': True})

tests/test_connection.py:870: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
contrib/pyln-testing/pyln/testing/utils.py:1467: in line_graph
    self.join_nodes(nodes, fundchannel, fundamount, wait_for_announce, announce_channels)
contrib/pyln-testing/pyln/testing/utils.py:1460: in join_nodes
    wait_for(lambda: 'alias' in only_one(end.rpc.listnodes(n.info['id'])['nodes']))
contrib/pyln-testing/pyln/testing/utils.py:88: in wait_for
    while not success():
contrib/pyln-testing/pyln/testing/utils.py:1460: in <lambda>
    wait_for(lambda: 'alias' in only_one(end.rpc.listnodes(n.info['id'])['nodes']))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

arr = []

    def only_one(arr):
        """Many JSON RPC calls return an array; often we only expect a single entry
        """
>       assert len(arr) == 1
E       AssertionError
```

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2022-06-27 17:21:35 +09:30
..
test json: fix up msat amounts in non-_msat fields. 2022-06-21 06:52:35 +09:30
broadcast.h cleanup: remove unneeded includes in header files. 2021-09-17 09:43:22 +09:30
gossip_generation.c wireaddr: moves wireaddr_arr_contains to wireaddr.h 2022-06-17 20:30:16 +09:30
gossip_generation.h channeld: send channel updates and announcements via lightningd. 2022-02-08 11:15:52 +10:30
gossip_store_wire.csv gossip_store: create end marker for EOF. 2021-05-22 17:53:04 +09:30
gossip_store.c common/gossip_store: optimize case where entries are filtered out. 2022-06-24 10:33:04 +09:30
gossip_store.h daemons: remove unused functions or make static. 2021-12-06 10:05:39 +10:30
gossipd_peerd_wire.csv channeld: send channel updates and announcements via lightningd. 2022-02-08 11:15:52 +10:30
gossipd_wire.csv connectd: take dev-suppress-gossip from gossipd. 2022-03-31 19:38:05 +10:30
gossipd.c connectd: take dev-suppress-gossip from gossipd. 2022-03-31 19:38:05 +10:30
gossipd.h gossipd: send updated node_annoucement remote_addr 2022-03-11 16:42:45 +10:30
Makefile channeld: take over gossip_rcvd_filter.c and is_msg_gossip_broadcast. 2022-06-17 14:14:02 +09:30
queries.c Makefile: update to BOLTs without zlib. 2022-05-19 09:47:32 +09:30
queries.h gossipd: send all gossip msgs directly to connectd, not peer. 2022-02-08 11:15:52 +10:30
routing.c gossipd: fix gossmap race. 2022-06-27 17:21:35 +09:30
routing.h gossipd: revert useless bf8cb640b7. 2022-04-21 06:13:55 +09:30
seeker.c connectd: take dev-suppress-gossip from gossipd. 2022-03-31 19:38:05 +10:30
seeker.h connectd: take dev-suppress-gossip from gossipd. 2022-03-31 19:38:05 +10:30