Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Returning messageVisibilityInterval always from commit roots cache (… #1157

Conversation

mateusz-sekara
Copy link
Contributor

#1155)

Commit's Roots cache stores block_timestamps for the CommitReports, but when reorgs happens block_timestamp can also change because TX could be included in a different block.

Example scenario:

CommitRoot with 10:30:00 UTC block timestamp is inserted with AppendUnexecutedRoot (so it's block_timestamp is persisted in the cache). Then reorg happens on the destination and the same CommitRoot is inserted into the blockchain but let's say with 10:29:00 UTC (different block_time), which is never updated. Commit Roots cache returns persisted 10:30:00 as the oldest block timestamp and we keep searching LogPoller using the wrong lower bound filter - this Commit Root never pops up in the execution because it's never returned from DB

Motivation

Solution

…1155)

Commit's Roots cache stores block_timestamps for the CommitReports, but
when reorgs happens block_timestamp can also change because TX could be
included in a different block.

Example scenario:

CommitRoot with 10:30:00 UTC block timestamp is inserted with
`AppendUnexecutedRoot` (so it's block_timestamp is persisted in the
cache). Then reorg happens on the destination and the same CommitRoot is
inserted into the blockchain but let's say with 10:29:00 UTC (different
block_time), which is never updated. Commit Roots cache returns
persisted 10:30:00 as the oldest block timestamp and we keep searching
LogPoller using the wrong lower bound filter - this Commit Root never
pops up in the execution because it's never returned from DB
Copy link
Contributor

github-actions bot commented Jul 8, 2024

I see you updated files related to core. Please run pnpm changeset in the root directory to add a changeset as well as in the text include at least one of the following tags:

  • #added For any new functionality added.
  • #breaking_change For any functionality that requires manual action for the node to boot.
  • #bugfix For bug fixes.
  • #changed For any change to the existing functionality.
  • #db_update For any feature that introduces updates to database schema.
  • #deprecation_notice For any upcoming deprecation functionality.
  • #internal For changesets that need to be excluded from the final changelog.
  • #nops For any feature that is NOP facing and needs to be in the official Release Notes for the release.
  • #removed For any functionality/config that is removed.
  • #updated For any functionality that is updated.
  • #wip For any change that is not ready yet and external communication about it should be held off till it is feature complete.

@mateusz-sekara mateusz-sekara merged commit b4d400b into release/2.12.0-ccip1.4 Jul 8, 2024
77 of 79 checks passed
@mateusz-sekara mateusz-sekara deleted the message-visilibity-interval-cherry-pick branch July 8, 2024 15:53
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