Lightning: Node not seeing recent channels

Created on 26 Mar 2019  路  6Comments  路  Source: ElementsProject/lightning

Issue and Steps to Reproduce

Running b17b05b8ae271d097d39ff24840d17f1f47e88be, after a long uptime, the most recent channel is from block 552,214 (Dec 2018). Recent channels are not showing up.

However, logs have lines about more recent channels:

 Received channel_update for 559295x969x0 with old time 1550692137

getinfo output

{
  "id": "023d280ae29f84dcfd289eb66b57227fea3a7bde97ec2869923d3c4d5c6a426028", 
  "alias": "p2sh.info", 
  "color": "023d28", 
  "num_peers": 16, 
  "num_pending_channels": 0, 
  "num_active_channels": 15, 
  "num_inactive_channels": 0, 
  "address": [
    {
      "type": "ipv4", 
      "address": "195.201.84.23", 
      "port": 9735
    }, 
    {
      "type": "ipv6", 
      "address": "2a01:4f8:13b:3da8::2", 
      "port": 9735
    }
  ], 
  "binding": [
    {
      "type": "ipv6", 
      "address": "::", 
      "port": 9735
    }, 
    {
      "type": "ipv4", 
      "address": "0.0.0.0", 
      "port": 9735
    }
  ], 
  "version": "v0.7.0-48-gb17b05b", 
  "blockheight": 568888, 
  "network": "bitcoin", 
  "msatoshi_fees_collected": 3267, 
  "fees_collected_msat": "3267msat"
}

Most helpful comment

Found the problem, we have more that UINT16_MAX channels to return, which causes an integer overflow :-)

All 6 comments

It could be an issue with listchannels as logs indicate the node is aware of more recent channels according from the logs:

2019-03-26T13:23:29.088Z lightning_gossipd(9385): Received channel_update for channel 567544x2727x1/1 now ACTIVE was ACTIVE (from subdaemon)

Command to reproduce my experience:

$ ./cli/lightning-cli listchannels | grep short_channel | sort | tail -n 1
      "short_channel_id": "552214x805x1", 

Deleting the gossip store and restarting the node seems to have done something.

A few seconds after restarting the node having deleted its gossip store:

./cli/lightning-cli listchannels | grep short_channel | sort | tail -n 1
      "short_channel_id": "567956x1741x0", 

After a few minutes, the recent channels disappeared:

./cli/lightning-cli listchannels | grep short_channel | sort | tail -n 1
      "short_channel_id": "551133x1290x0", 

It seems like it could be related to https://github.com/ElementsProject/lightning/issues/2443

Very interesting finding, this could be an issue in two different places: the JSON-RPC serialization, or the communication path between gossipd and lightningd.

The JSON is correctly formed, as otherwise a program of mine that parses the output of the RPC call would fail on deserialization.

Found the problem, we have more that UINT16_MAX channels to return, which causes an integer overflow :-)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

agilob picture agilob  路  4Comments

SPIRY-RO picture SPIRY-RO  路  4Comments

ldn2017 picture ldn2017  路  4Comments

brunoaduarte picture brunoaduarte  路  5Comments

jonasnick picture jonasnick  路  3Comments