AntelopeIO / spring

C++ implementation of the Antelope protocol with Savanna consensus
Other
9 stars 5 forks source link

log_missing_votes assert failure #103

Closed linh2931 closed 6 months ago

linh2931 commented 6 months ago

https://github.com/AntelopeIO/spring/actions/runs/8917266914/job/24490261804?pr=99#step:4:1872

The failure was caused by nodeos: /__w/spring/spring/plugins/producer_plugin/producer_plugin.cpp:645: void eosio::producer_plugin_impl:: log_missing_votes(const signed_block_ptr&, const block_id_type&, const finalizer_policy_ptr&, const eosio::chain:: valid_quorum_certificate&): Assertion 'votes.size() == finalizers.size()' failed.

Looks like the assert of votes.size() == finalizers.size() is too strong. Should the sizes be always the same?

Right before the failure, active finalizer policy changed. Is chain.head_active_finalizer_policy() https://github.com/AntelopeIO/spring/blob/a3fa40ef0974fc2fb5c5bfd70abaf9b32c9b5c02/plugins/producer_plugin/producer_plugin.cpp#L710 a correct one?

info 2024-05-02T01:40:27.205 nodeos block_header_state.cpp:198 finish_next ] New finalizer policy becoming active in block 00000094dca958564d1e292a08304b3435f68f8c80cbfafe5eada68005ac3d08: {"generation":2,"threshold":4,"finalizers": [{"description":"finalizer #1","weight":1,"public_key": "PUB_BLS_9vqjUfNSWu1EeycAit5GmmcoEICNIYJhFOu1lQgb57FPebfRZ5OzHuCrxDDQNm0L15DKKwD4vKs1h-Sop7h2QJkNoQGIsLOuFlGVlIlVvB3- Q_TdO_HLen_alXtU4F0LGYfDRg"},{"description":"finalizer #2","weight":1,"public_key":"PUB_BLS_Awr- VUIZ0SEofZQYPc5N0rWwNQid5eBmverhoacGSqVozAa6Wh9COpqCOJoD5uEJ5TuJUG3aCVRblGjFZDD1zweLISsDU0D5rRkMQ5JiUZLkRH3KAgageTirQIgI9c8MI5X7qw"},{"description":"finalizer #3","weight":1,"public_key":"PUB_BLS_d_moeh6iA9A5nbOZWmf6IcOyN4sIPYuZhUCdzvJA33N78sayp7couj5-ZdO- SQYV1P0oPRbVS2tv7TEdFNCsnAurnJ86Wor1U4mJg1QIpgJkZ5meEt3JlsriQ6umumMTkN6wNg"},{"description":"finalizer #4","weight":1, "public_key":"PUB_BLS_SSoZug-A9AlfdHVqHLjsIiFpas8KEPr-vA5RVrhyotM8JD- HM4sN0KMF3Ym7cXMA4wtbgbwHIMg8AcmRfgGph4vkpMgfpd6AqaRuWFmaMvbkmUwl7Q3QgFhX56ccldQJrCCQWw"},{"description":"finalizer #5","weight":1,"public_key":"PUB_BLS_qVbh4IjYZpRGo8U_0spBUM-u- r_G0fMo4MzLZRsKWmm5uyeQTp74YFaMN9IDWPoVVT5rj_Tw1gvps6K9_OZ6sabkJJzug3uGfjA6qiaLbLh5Fnafwv-nVgzzzBlU2kwRrcHc8Q"}]} debug 2024-05-02T01:40:27.207 nodeos block_state.cpp:53 block_state ] integrate qc {"block_num":147, "is_strong_qc":true} into block 148 00000094dca958564d1e292a08304b3435f68f8c80cbfafe5eada68005ac3d08

heifner commented 6 months ago

quorum_certificate_extension -> qc_data does not refer to block it is in.