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

Base: trace_call returns internal blocking task error #6008

Closed
1 task done
quickchase opened this issue Jan 10, 2024 · 5 comments · Fixed by #6136
Closed
1 task done

Base: trace_call returns internal blocking task error #6008

quickchase opened this issue Jan 10, 2024 · 5 comments · Fixed by #6136
Labels
C-bug An unexpected or incorrect behavior

Comments

@quickchase
Copy link

Describe the bug

When trying to test trace_call and trace_callMany on Base Mainnet and Base Sepolia we get back the error internal blocking task error

Steps to reproduce

Run op-reth on Base Mainnet or Base Sepolia - try to use trace_call or trace_callMany

Here's a sample payload for base-sepolia

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "trace_call",
  "params": [
    {
      "from": "0xd8ea779b8ffc1096ca422d40588c4c0641709890",
      "to": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
      "value": "0x186a0"
    },
    [
      "trace"
    ]
  ]
}

Node logs

I think these logs are related:


op-reth[4231]: thread '<unnamed>' panicked at /root/.cargo/git/checkouts/revm-bf744d8ffabcbad9/b00ebab/crates/revm/src/evm_impl.rs:267:17:
op-reth[4231]: [OPTIMISM] Failed to load enveloped transaction.
op-reth[4231]: stack backtrace:
op-reth[4231]:    0: rust_begin_unwind
op-reth[4231]:              at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/std/src/panicking.rs:645:5
op-reth[4231]:    1: core::panicking::panic_fmt
op-reth[4231]:              at /rustc/82e1608dfa6e0b5569232559e3d385fea5a93112/library/core/src/panicking.rs:72:14
op-reth[4231]:    2: revm::evm_impl::EVMImpl<GSPEC,DB>::transact_preverified_inner
op-reth[4231]:    3: <revm::evm_impl::EVMImpl<GSPEC,DB> as revm::evm_impl::Transact<<DB as revm_primitives::db::Database>::Error>>::transact
op-reth[4231]:    4: revm::evm::EVM<DB>::inspect
op-reth[4231]:    5: reth_rpc::eth::revm_utils::inspect_and_return_db
op-reth[4231]:    6: <rayon_core::job::HeapJob<BODY> as rayon_core::job::Job>::execute
op-reth[4231]:    7: rayon_core::registry::WorkerThread::wait_until_cold
op-reth[4231]: note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Platform(s)

Linux (x86)

What version/commit are you on?

0.1.0-alpha.14

What database version are you on?

No response

What type of node are you running?

Archive (default)

What prune config do you use, if any?

No response

If you've built Reth from source, provide the full command you used

export RUSTFLAGS="-C target-cpu=native"; cargo build --bin op-reth --profile maxperf --features "optimism,jemalloc"

Code of Conduct

  • I agree to follow the Code of Conduct
@quickchase quickchase added C-bug An unexpected or incorrect behavior S-needs-triage This issue needs to be labelled labels Jan 10, 2024
@quickchase
Copy link
Author

Possibly related: #5514

@quickchase
Copy link
Author

Also, your docs are missing a ] at the end of this example:

image

@mattsse
Copy link
Collaborator

mattsse commented Jan 10, 2024

@clabby @refcell

I assume this is an issue with how we configure the revm's TxEnv for calls on Optimism:

#[cfg(feature = "optimism")]
optimism: Default::default(),

which will cause a panic due to missing tx envelope bytes: bluealloy/revm#967

this is a massive config footgun.

What should be set for Calls? Was unable to navigate op-geth and find the solution

@Rjected
Copy link
Member

Rjected commented Jan 10, 2024

It looks op-geth uses this RollupCostData struct instead of putting the entire enveloped transaction in the env.

RollupCostData:
https://github.com/ethereum-optimism/op-geth/blob/a79bde2c0f4f11620a0a7b1cd81d4274d6099e83/core/types/rollup_cost.go#L79-L84

This is also the argument to their equivalent of calculate_tx_l1_cost:
https://github.com/ethereum-optimism/op-geth/blob/a79bde2c0f4f11620a0a7b1cd81d4274d6099e83/core/types/rollup_cost.go#L91

I can't find the cost data being set in the op-geth eth_call path though, so it's possible it is just unset and taking default values (0, 0).

@upnodedev
Copy link

This cause our op-proposer to fail

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug An unexpected or incorrect behavior
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

5 participants