Skip to content

Conversation

@xqft
Copy link
Contributor

@xqft xqft commented Feb 24, 2025

Motivation

The current l2-loadtest.rlp had empty blocks. After replacing with a chain that contains a non-empty block, a bug was discovered when creating a ExecutionDB from a Store: we would try to filter out new accounts using revm's AccountStatus but for some reason every account has the same status (Touched), meaning that we were not filtering at all.

The solution was to not filter and assume that the Store is correct based on the success of the pre-execution (so if an account is missing from the parent state, then that account was created in the block to prove).

Description

  • replaces l2-loadtest.rlp file with one that contains a non empty block
  • fixes the bug described above

@xqft xqft requested a review from a team as a code owner February 24, 2025 21:34
@github-actions
Copy link

| File                                            | Lines | Diff |
+-------------------------------------------------+-------+------+
| /home/runner/work/ethrex/ethrex/crates/vm/db.rs | 365   | +2   |
+-------------------------------------------------+-------+------+

Total lines added: +2
Total lines removed: 0
Total lines changed: 2

@jrchatruc jrchatruc enabled auto-merge February 24, 2025 21:55
@jrchatruc jrchatruc added this pull request to the merge queue Feb 24, 2025
Merged via the queue into main with commit 936661a Feb 24, 2025
26 checks passed
@jrchatruc jrchatruc deleted the l2/fix_perf_tests branch February 24, 2025 22:23
JereSalo pushed a commit that referenced this pull request Feb 28, 2025
**Motivation**

The current `l2-loadtest.rlp` had empty blocks. After replacing with a
chain that contains a non-empty block, a bug was discovered when
creating a `ExecutionDB` from a `Store`: we would try to filter out new
accounts using revm's `AccountStatus` but for some reason every account
has the same status (`Touched`), meaning that we were not filtering at
all.

The solution was to not filter and assume that the `Store` is correct
based on the success of the pre-execution (so if an account is missing
from the parent state, then that account was created in the block to
prove).

**Description**

- replaces `l2-loadtest.rlp` file with one that contains a non empty
block
- fixes the bug described above
fkrause98 pushed a commit that referenced this pull request Mar 5, 2025
**Motivation**

The current `l2-loadtest.rlp` had empty blocks. After replacing with a
chain that contains a non-empty block, a bug was discovered when
creating a `ExecutionDB` from a `Store`: we would try to filter out new
accounts using revm's `AccountStatus` but for some reason every account
has the same status (`Touched`), meaning that we were not filtering at
all.

The solution was to not filter and assume that the `Store` is correct
based on the success of the pre-execution (so if an account is missing
from the parent state, then that account was created in the block to
prove).

**Description**

- replaces `l2-loadtest.rlp` file with one that contains a non empty
block
- fixes the bug described above
fkrause98 pushed a commit that referenced this pull request Mar 5, 2025
**Motivation**

The current `l2-loadtest.rlp` had empty blocks. After replacing with a
chain that contains a non-empty block, a bug was discovered when
creating a `ExecutionDB` from a `Store`: we would try to filter out new
accounts using revm's `AccountStatus` but for some reason every account
has the same status (`Touched`), meaning that we were not filtering at
all.

The solution was to not filter and assume that the `Store` is correct
based on the success of the pre-execution (so if an account is missing
from the parent state, then that account was created in the block to
prove).

**Description**

- replaces `l2-loadtest.rlp` file with one that contains a non empty
block
- fixes the bug described above
pedrobergamini pushed a commit to pedrobergamini/ethrex that referenced this pull request Aug 24, 2025
…lass#2068)

**Motivation**

The current `l2-loadtest.rlp` had empty blocks. After replacing with a
chain that contains a non-empty block, a bug was discovered when
creating a `ExecutionDB` from a `Store`: we would try to filter out new
accounts using revm's `AccountStatus` but for some reason every account
has the same status (`Touched`), meaning that we were not filtering at
all.

The solution was to not filter and assume that the `Store` is correct
based on the success of the pre-execution (so if an account is missing
from the parent state, then that account was created in the block to
prove).

**Description**

- replaces `l2-loadtest.rlp` file with one that contains a non empty
block
- fixes the bug described above
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.

3 participants