Stresstest: fails on exit when the head memorized at the initialization of the command is not on the winning branch
Sometime, when the stresstest command terminates, there is the following error message that appears:
Error:
(Invalid_argument operations_hashes_path)
The error is triggered when the RPC
let* included_ops =
Shell_services.Chain.Blocks.Operation_hashes
.operation_hashes_in_pass
cctxt
~chain:`Main
~block:(`Hash (block, 0))
3
is called on a genesis block.
This is due to an infinite recursion of the function get_included_ops older_block
.
The older_block
is the first head seen at the initialization of the command.
If it is not a block of the winning branch, when we fold over the chain from the last block seen to the first block seen, the stop condition block = older_block
will never be activated, because older_block
is not a predecessor of the last block seen.