Skip to content

Conversation

@GheisMohammadi
Copy link
Collaborator

The Tracer was being invoked during normal block processing, which could cause non-deterministic behavior and potentially lead to chain forks. Tracer methods were being called during consensus-critical transaction execution, and debug print statements in tracer code could introduce side effects.

This PR ensures vmConfig.Tracer is explicitly set to nil before processing blocks during normal consensus operations, so, Tracer is now only used during explicit tracing operations (RPC calls like TraceTransaction), not during consensus and eliminates risk of non-deterministic behavior from tracer side effects. it disables Debug flag during normal block processing and removes debug print statements from tracer code that could cause side effects. The changes prevents potential chain forks caused by tracer code running during normal block processing. There is no functional changes to tracing capabilities when explicitly requested via RPC

@GheisMohammadi GheisMohammadi self-assigned this Dec 29, 2025
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