Skip to content

Backporting fixes from feat-vm2#5403

Merged
mpapierski merged 7 commits intocasper-network:devfrom
mpapierski:backporting-vm2-fixes
Apr 16, 2026
Merged

Backporting fixes from feat-vm2#5403
mpapierski merged 7 commits intocasper-network:devfrom
mpapierski:backporting-vm2-fixes

Conversation

@mpapierski
Copy link
Copy Markdown
Collaborator

@mpapierski mpapierski commented Apr 15, 2026

Summary

This PR backports four targeted fixes from feat-vm2 onto the current dev-based branch:

What changed

#5303 validator-only Zug sync

Periodic Zug sync requests are now routed to fully connected validators for the target era instead of random peers. This tightens the semantics of periodic consensus sync and avoids asking peers that may not have relevant era data.

#5304 genesis config wiring fix

EE test support now correctly threads the addressable-entity setting into genesis request construction. This also adds a regression test covering install/add-version behavior when the flag is enabled.

#5368 tracking-copy prune cache fix

TrackingCopy now treats Pruned distinctly from NotFound, clears pending mutations when a key is pruned, and prevents reads and prefix scans from resurrecting pruned values out of backing state. The backport includes focused storage regressions for those cases.

#5377 lane-definition cache invalidation fix

TransactionLaneDefinition fields are no longer mutated directly. Callers now go through accessors/setters so internal cached lane state stays coherent. This backport is intentionally limited to the lane-definition/cache-refresh portion and does not include the VM2 target-enablement changes from the upstream PR.

Notes

  • The #5368 backport is scoped to the storage-side fix and its regressions.
  • The #5377 backport is scoped to the general lane-definition correctness fix only.

@darthsiroftardis darthsiroftardis changed the title Backporting vm2 fixes Backporting fixes from feat-vm2 Apr 15, 2026
#[cfg_attr(feature = "datasize", derive(DataSize))]
pub struct TransactionLaneDefinition {
/// The lane identifier
pub id: u8,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm now thinking that technically making these fields not-public is also a backwards-incompatible change.
Maybe we should both add the getters/setters and keep the fields public?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in b986e3f

@mpapierski mpapierski force-pushed the backporting-vm2-fixes branch from b986e3f to 4b66e5e Compare April 16, 2026 10:51
@mpapierski mpapierski merged commit 251c00c into casper-network:dev Apr 16, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants