nervosnetwork / ckb-light-client

CKB light client reference implementation
MIT License
14 stars 16 forks source link

Panic received: "no previous prove state but has reorg blocks". #145

Closed jordanmack closed 8 months ago

jordanmack commented 1 year ago

Received the following error on v0.2.3 when running normally. During this time period there was an internet outage which would have affected the CKB Light Client and a local CKB node that it may have been connected to.

thread 'GlobalRt-2' panicked at 'internal error: entered unreachable code: no previous prove state but has reorg blocks', src/protocols/light_client/components/send_last_state_proof.rs:241:25
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[2023-05-09T13:57:05Z INFO  ckb_network::network] Ban peer "/ip4/47.90.209.219/tcp/8111/p2p/QmRJKqD4gdp7mhC4cz8uMSdPEjXzBdN3J8pARJBvNPk3G3" for 300 seconds, reason: protocol ProtocolId(120) panic when process peer message
[2023-05-09T13:57:05Z INFO  ckb_network::network] p2p service event: ListenClose { address: "/ip4/0.0.0.0/tcp/8118" }
[2023-05-09T13:57:05Z INFO  ckb_light_client::protocols::synchronizer] SyncProtocol.disconnected peer=SessionId(154)
[2023-05-09T13:57:05Z INFO  ckb_light_client::protocols::synchronizer] SyncProtocol.disconnected peer=SessionId(155)
[2023-05-09T13:57:05Z INFO  ckb_light_client::protocols::synchronizer] SyncProtocol.disconnected peer=SessionId(126)
[2023-05-09T13:57:05Z INFO  ckb_stop_handler] StopHandler(network) send signal
[2023-05-09T13:57:05Z INFO  ckb_light_client] Done.
yangby-cryptape commented 1 year ago

Would you provide more logs before the panic? Those logs printed the state of the light client.

Since I could not reproduce this panic, I need more information to figure out why it panicked.

yangby-cryptape commented 1 year ago

Do you use a fresh light client without any data, or there has some old data from a previous version binary?

jordanmack commented 1 year ago

Do you use a fresh light client without any data, or there has some old data from a previous version binary?

Completely fresh. This is the first time I have tried to use the CKB Light Client.

jordanmack commented 1 year ago

Would you provide more logs before the panic?

2023-05-09T13:47:09Z INFO  ckb_light_client::protocols::light_client] peer SessionId(126): copy prove state from peer SessionId(131)
[2023-05-09T13:47:09Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:47:17Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:47:25Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:47:33Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:47:41Z INFO  ckb_light_client::protocols::light_client] peer SessionId(126): copy prove state from peer SessionId(128)
[2023-05-09T13:47:41Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:47:49Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:47:57Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:48:05Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:48:13Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:48:21Z INFO  ckb_light_client::protocols::light_client] finalize 1 new check points, stop at index 4622, value 0xbf3b68f51413fb58e8bde722a95d5a118fafb03a7abfdfb393ce4cbf48793a86
[2023-05-09T13:48:29Z INFO  ckb_light_client::protocols::light_client] peer SessionId(129): copy prove state from peer SessionId(131)
[2023-05-09T13:48:29Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:48:37Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:48:45Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:48:53Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:49:01Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:49:09Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:49:17Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:49:25Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:49:33Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:49:41Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:49:49Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:49:57Z INFO  ckb_light_client::protocols::light_client] peer SessionId(128): copy prove state from peer SessionId(126)
[2023-05-09T13:49:57Z INFO  ckb_light_client::protocols::light_client] peer SessionId(127): copy prove state from peer SessionId(128)
[2023-05-09T13:49:57Z INFO  ckb_light_client::protocols::light_client] peer SessionId(129): copy prove state from peer SessionId(128)
[2023-05-09T13:49:57Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:50:05Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:50:13Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:50:21Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:50:29Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:50:37Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:50:45Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:50:53Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:51:01Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:51:09Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:51:17Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:51:25Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:51:33Z INFO  ckb_light_client::protocols::light_client] peer SessionId(128): copy prove state from peer SessionId(131)
[2023-05-09T13:51:33Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:51:41Z INFO  ckb_light_client::protocols::light_client] peer SessionId(126): copy prove state from peer SessionId(131)
[2023-05-09T13:51:41Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:51:49Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:51:57Z INFO  ckb_light_client::protocols::light_client] no check point is found which could be finalized
[2023-05-09T13:52:01Z INFO  ckb_light_client::protocols::synchronizer] SyncProtocol.disconnected peer=SessionId(127)
[2023-05-09T13:52:01Z INFO  ckb_light_client::protocols::light_client] LightClient.disconnected peer=SessionId(127)
[2023-05-09T13:52:01Z INFO  ckb_light_client::protocols::light_client] LightClient.disconnected peer=SessionId(128)
[2023-05-09T13:52:01Z INFO  ckb_light_client::protocols::synchronizer] SyncProtocol.disconnected peer=SessionId(128)
[2023-05-09T13:52:01Z INFO  ckb_light_client::protocols::light_client] LightClient.disconnected peer=SessionId(131)
[2023-05-09T13:52:01Z INFO  ckb_light_client::protocols::synchronizer] SyncProtocol.disconnected peer=SessionId(131)
[2023-05-09T13:52:03Z INFO  ckb_light_client::protocols::light_client] LightClient.disconnected peer=SessionId(129)
[2023-05-09T13:52:03Z INFO  ckb_light_client::protocols::synchronizer] SyncProtocol.disconnected peer=SessionId(129)
[2023-05-09T13:56:35Z INFO  ckb_light_client::protocols::synchronizer] SyncProtocol(2).connected peer=SessionId(154)
[2023-05-09T13:56:35Z INFO  ckb_light_client::protocols::light_client] LightClient(2).connected peer=SessionId(154)
[2023-05-09T13:56:37Z INFO  ckb_light_client::protocols::light_client] LightClient(2).connected peer=SessionId(155)
[2023-05-09T13:56:37Z INFO  ckb_light_client::protocols::synchronizer] SyncProtocol(2).connected peer=SessionId(155)