skalenetwork / skale-consensus

Running the very core of SKL network, SKALE BFT consensus is universal, modern, modular, high-performance, asynchronous, provably-secure, agent-based Proof-of-Stake blockchain consensus engine in C++ 17. Includes provably secure embedded Oracle. Used by SKALE elastic blockchains. Easy and flexible enough to implement your own blockchain or smart contract platform. BLS signatures and Binary Asynchronous Consensus are main building blocks.
https://docs.skale.network/technology/consensus-spec
GNU Affero General Public License v3.0
78 stars 32 forks source link

Incorrect exit in the middle of block execution #775

Closed dimalit closed 1 year ago

dimalit commented 1 year ago

Actual:

  1. 4 nodes
  2. exitGracefully() is called inside createBlock()
  3. createBlock() doesn't return for 40 sec (for testing)
  4. consensus outputs No luck exiting on block boundary. Exiting immediately

Expected: consensus should not include time, when it was waiting for skaled, in it's own timeout - and in this case should not consider this exit as "not on block boundary"

kladkogex commented 1 year ago

Lets discuss exactly

DmytroNazarenko commented 1 year ago

Related to https://github.com/skalenetwork/skaled/issues/1425

DmytroNazarenko commented 1 year ago

skaled: 3.17.0-beta.1

oleksandrSydorenkoJ commented 1 year ago

Verified on skalenetwork/schain:3.17.0-beta.7-historic

Skaled wait for 270 seconds of the gracefully timeout after sigterm if consensus stuck during block processing

historic_block_call_during_proccessing_transactions.log