All blocks items (operations, transactions, etc...) have to be stored in state not in std::vectors allocated with standard allocator
There are situations when in the middle of processing a block the node rejects it and rewind already added items from the state. Unfortunately, HAF collects information about a block's item to std::vectors which are not a part of the state and for example operations that are already signalled by on_pre_apply_operation/on_post_applay_operations signals will stay in buffered vector and then processed together with processing next block what is wrong. All the block data must be stored in the state and work under the control of hived blocks processing code.
Edited by Marcin