Fix: Disable Tracer during normal block processing #4988
+9
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.Traceris explicitly set tonilbefore processing blocks during normal consensus operations, so, Tracer is now only used during explicit tracing operations (RPC calls likeTraceTransaction), not during consensus and eliminates risk of non-deterministic behavior from tracer side effects. it disablesDebugflag 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