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

[Tracking] Hive engine-cancun test suite #1285

Open
66 tasks
mpaulucci opened this issue Nov 26, 2024 · 0 comments
Open
66 tasks

[Tracking] Hive engine-cancun test suite #1285

mpaulucci opened this issue Nov 26, 2024 · 0 comments
Labels
ef-tests Hive tests, execution-spec-tests L1 Ethereum client

Comments

@mpaulucci
Copy link
Collaborator

mpaulucci commented Nov 26, 2024

These are the failing tests

make run-hive SIMULATION=ethereum/engine TEST_PATTERN="engine-cancun"
cat $(ls -t hive/workspace/logs/*-*.json | head -n1) | jq '.testCases[] | select(.summaryResult.pass == false) | .name'
  • Invalid NewPayload, Incomplete Transactions, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Transaction Signature, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Transaction Signature, Syncing=True, EmptyTxs=False, DynFeeTxs=True
  • Invalid NewPayload, Transaction Nonce, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Transaction Nonce, Syncing=True, EmptyTxs=False, DynFeeTxs=True
  • Invalid NewPayload, Transaction GasPrice, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Transaction GasPrice, Syncing=True, EmptyTxs=False, DynFeeTxs=True
  • Invalid NewPayload, Transaction GasTipCapPrice, Syncing=True, EmptyTxs=False, DynFeeTxs=True
  • Invalid NewPayload, Transaction Gas, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Transaction Gas, Syncing=True, EmptyTxs=False, DynFeeTxs=True
  • Invalid NewPayload, Transaction Value, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Transaction Value, Syncing=True, EmptyTxs=False, DynFeeTxs=True
  • Invalid NewPayload, Transaction ChainID, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Transaction ChainID, Syncing=True, EmptyTxs=False, DynFeeTxs=True
  • Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=False, Invalid P1
  • Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=True, Invalid P1
  • Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=False, Invalid P9
  • Invalid Missing Ancestor ReOrg, StateRoot, EmptyTxs=True, Invalid P9
  • Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=True, CanonicalReOrg=True, Invalid P9
  • Invalid Missing Ancestor Syncing ReOrg, StateRoot, EmptyTxs=False, CanonicalReOrg=True, Invalid P9
  • Invalid Missing Ancestor Syncing ReOrg, ReceiptsRoot, EmptyTxs=False, CanonicalReOrg=True, Invalid P8
  • Invalid Missing Ancestor Syncing ReOrg, GasLimit, EmptyTxs=False, CanonicalReOrg=True, Invalid P8
  • Invalid Missing Ancestor Syncing ReOrg, GasUsed, EmptyTxs=False, CanonicalReOrg=True, Invalid P8
  • Invalid Missing Ancestor Syncing ReOrg, Timestamp, EmptyTxs=False, CanonicalReOrg=True, Invalid P8
  • Invalid Missing Ancestor Syncing ReOrg, Incomplete Transactions, EmptyTxs=False, CanonicalReOrg=True, Invalid P9
  • Invalid Missing Ancestor Syncing ReOrg, Transaction Signature, EmptyTxs=False, CanonicalReOrg=True, Invalid P9
  • Invalid Missing Ancestor Syncing ReOrg, Transaction Nonce, EmptyTxs=False, CanonicalReOrg=True, Invalid P9
  • Invalid Missing Ancestor Syncing ReOrg, Transaction Gas, EmptyTxs=False, CanonicalReOrg=True, Invalid P9
  • Invalid Missing Ancestor Syncing ReOrg, Transaction GasPrice, EmptyTxs=False, CanonicalReOrg=True, Invalid P9
  • Invalid Missing Ancestor Syncing ReOrg, Transaction Value, EmptyTxs=False, CanonicalReOrg=True, Invalid P9
  • Sidechain Reorg
  • Re-Org Back to Canonical Chain From Syncing Chain
  • Re-Org Back into Canonical Chain, Depth=10, Execute Side Payload on Re-Org
  • Invalid PayloadAttributes, Missing BeaconRoot, Syncing=True
  • Invalid NewPayload, ParentBeaconBlockRoot, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, BlobGasUsed, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Blob Count on BlobGasUsed, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, ExcessBlobGas, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, VersionedHashes, Syncing=False, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, VersionedHashes, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, VersionedHashes Version, Syncing=False, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, VersionedHashes Version, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Incomplete VersionedHashes, Syncing=False, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Incomplete VersionedHashes, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Extra VersionedHashes, Syncing=False, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Extra VersionedHashes, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Request Blob Pooled Transactions Single
  • Request Blob Pooled Transactions Multiple
  • Bad Hash on NewPayload (Syncing=true, Sidechain=false)
  • Bad Hash on NewPayload (Syncing=true, Sidechain=true)
  • Unknown HeadBlockHash
  • Invalid PayloadAttributes, Zero timestamp, Syncing=True
  • Blob Transaction Ordering, Multiple Clients
  • Invalid PayloadAttributes, Parent timestamp, Syncing=True
  • In-Order Consecutive Payload Execution
  • Valid NewPayload->ForkchoiceUpdated on Syncing Client
  • Invalid NewPayload, ParentHash, Syncing=False, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, ParentHash, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=True, DynFeeTxs=False
  • Invalid NewPayload, StateRoot, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, ReceiptsRoot, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Number, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, GasLimit, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, GasUsed, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, Timestamp, Syncing=True, EmptyTxs=False, DynFeeTxs=False
  • Invalid NewPayload, PrevRandao, Syncing=True, EmptyTxs=False, DynFeeTxs=False
@mpaulucci mpaulucci pinned this issue Nov 26, 2024
@lambdaclass lambdaclass deleted a comment from ElFantasma Dec 30, 2024
@mpaulucci mpaulucci added ef-tests Hive tests, execution-spec-tests L1 Ethereum client labels Jan 9, 2025
github-merge-queue bot pushed a commit that referenced this issue Feb 19, 2025
**Motivation**
Fix failing tests in the engine-cancun hive suite.


**Description**
This update fixes all tests matching the pattern `ForkId: *` in the
`engine-cancun` suite. The issue resulted from not filtering out
duplicate fork values and failing to exclude forks that occurred before
the genesis block.

Advances on #1285
github-merge-queue bot pushed a commit that referenced this issue Feb 19, 2025
**Motivation**
Fixes hive invalid ancestor tests under `engine-cancun` with the pattern
`engine-cancun/Invalid Missing .* .*CanonicalReOrg=False`.

**Description**
The following was implemented to fix the tests:
- Because `forkchoice_update` and `new_payload` require us to send the
latest valid hash, we now cache the last valid hash of the chain
corresponding to bad blocks, these are the `invalid_ancestors`.
- The bad blocks are cached when:
   1. When failing to add a block during syncing
   2.  When the block execution of `new_payload` fails.
- The latest valid hash was fixed on `new_payload`; this was a known
issue see #982.
- Finally, when syncing, if we have a pending block from a `new_payload`
request, we attach it if the parent hash of the block corresponds to the
last header parent hash.

Closes #982
Advances on #1285
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ef-tests Hive tests, execution-spec-tests L1 Ethereum client
Projects
Status: No status
Development

No branches or pull requests

1 participant