ethereum / aleth

Aleth – Ethereum C++ client, tools and libraries
GNU General Public License v3.0
3.97k stars 2.17k forks source link

Invariant Exception #3366

Open winsvega opened 8 years ago

winsvega commented 8 years ago

Recently we have eth crashing while syncing with following exceptions:

02:10:44.694|p2p|a979fb57…|Geth/v1.4.18-stable-c72f5459/linux/go1.7.1  BlocksHeaders ( 1 entries) 
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<dev::FailedInvariant>'
  what():  FailedInvariant
Aborted
 ⧎ ◌  23:46:22.974|p2p  Hello: Parity/v1.3.7-beta/x86_64-linux-gnu/rustc1.12.0 V[ 4 ] ##b27216ea… (eth,63) 30303
⧎ ◌  23:46:23.003|p2p|1cd4c9e0…|Parity/v1.3.8-beta-d66bd3c-20161014/x86_64-linux-gnu/rustc1.13.0-beta.1  BlocksHeaders ( 160 entries) 
⧎ ◌  23:46:23.031|p2p|6075be8e…|Geth/v1.4.18-stable/linux/go1.7.1  BlocksHeaders ( 192 entries) 
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<dev::FailedInvariant>'
  what():  FailedInvariant
Aborted
 23:30:00.209|p2p|1cd4c9e0…|Parity/v1.3.8-beta-d66bd3c-20161014/x86_64-linux-gnu/rustc1.13.0-beta.1  Skipping header 1922683
⧎ ◌  23:30:00.222|p2p|dc3563b8…|Geth/v3.0.0-stable-d76ad4eb/linux/go1.4.2  BlocksHeaders ( 1 entries) 
⧎ ◌  23:30:00.244|p2p|6075be8e…|Geth/v1.4.18-stable/linux/go1.7.1  BlocksHeaders ( 1 entries) 
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<dev::FailedInvariant>'
  what():  FailedInvariant
Aborted

The exception is thrown at this line: https://github.com/ethereum/cpp-ethereum/blob/develop/libethereum/BlockChainSync.cpp#L839

It appears to be that blocks are already imported but still crash the client at checkInvariants function.

chriseth commented 8 years ago

Proposed solution: Add some missing locks.

winsvega commented 7 years ago

Have we resolved this issue?

chriseth commented 7 years ago

I don't think so.