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

Problem: extra-eips is not concurrency safe #26136

Closed
yihuang opened this issue Nov 8, 2022 · 0 comments · Fixed by #26137
Closed

Problem: extra-eips is not concurrency safe #26136

yihuang opened this issue Nov 8, 2022 · 0 comments · Fixed by #26137
Labels

Comments

@yihuang
Copy link
Contributor

yihuang commented Nov 8, 2022

System information

Geth version: v1.10.19+
CL client & version: e.g. lighthouse/nimbus/prysm@v1.0.0
OS & Version: Windows/Linux/OSX
Commit hash : (if develop)

Expected behaviour

Multiple evm instances created with NewEVM should be safe to use concurrently.

Actual behaviour

They'll interleave each other when extra-eips exists.

Steps to reproduce the behaviour

  • Set some extra-eips in the config
  • Start multiple thread, in each thread, create separate evm instance and execute the same contract with same context.
  • The contract results will defer.

Backtrace

[backtrace]

When submitting logs: please submit them as text and not screenshots.

yihuang added a commit to yihuang/go-ethereum that referenced this issue Nov 8, 2022
yihuang added a commit to crypto-org-chain/go-ethereum that referenced this issue Nov 8, 2022
holiman added a commit that referenced this issue Nov 9, 2022
When the interpreter is configured to use extra-eips, this change makes it so that all the opcodes are deep-copied, to prevent accidental modification of the 'base' jumptable. 

Closes: #26136

Co-authored-by: Martin Holst Swende <martin@swende.se>
yihuang added a commit to crypto-org-chain/go-ethereum that referenced this issue Nov 10, 2022
When the interpreter is configured to use extra-eips, this change makes it so that all the opcodes are deep-copied, to prevent accidental modification of the 'base' jumptable.

Closes: ethereum#26136

Co-authored-by: Martin Holst Swende <martin@swende.se>
JayT106 pushed a commit to JayT106/go-ethereum that referenced this issue Mar 2, 2023
When the interpreter is configured to use extra-eips, this change makes it so that all the opcodes are deep-copied, to prevent accidental modification of the 'base' jumptable.

Closes: ethereum#26136

Co-authored-by: Martin Holst Swende <martin@swende.se>
shekhirin pushed a commit to shekhirin/go-ethereum that referenced this issue Jun 6, 2023
When the interpreter is configured to use extra-eips, this change makes it so that all the opcodes are deep-copied, to prevent accidental modification of the 'base' jumptable. 

Closes: ethereum#26136

Co-authored-by: Martin Holst Swende <martin@swende.se>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant