fix(metrics): pass the epoch manager to spawn_trie_metrics_loop #12811
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This function creates its own epoch manager with new_from_genesis_config(), but this is not how the main epoch manager is created at startup, which is done with new_arc_handle(). These result in epoch managers that return different EpochConfigs for a given protocol version, since only the second one initializes an epoch config store from the genesis config, and the first one generates epoch configs with generate_epoch_config(). In this case it leads to a crash if the shard layouts are different because the call to
ShardUId::from_shard_id_and_layout()
will see the wrong shard IDs and crash atassert!(shard_layout.shard_ids().any(|i| i == shard_id));