Conversation
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
b177656 to
7b8a363
Compare
6981a66 to
fe9ec89
Compare
|
Ran through LLM review and got this Major issues1. Baker is never stopped — goroutine leak + use-after-close on pebble. Fix: capture the baker, register it for shutdown, and Stop it before closing the TraceDB so workers drain first. 2. select {
case b.queue <- height:
default:
...
}If a block commit fires after 3. if len(config.TracerConfig) > 0 { return "" }But 4. |
|
Will respond in more detail but don't think any of these are real triggerable bugs. Can clean up but can you take a look at the logic independently and lmk if any thoughts? |
Will clean up w/some suggestions but don't seem like blockers |
ae34e85 to
f861506
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #3359 +/- ##
==========================================
+ Coverage 59.07% 59.23% +0.16%
==========================================
Files 2100 2099 -1
Lines 173066 172898 -168
==========================================
+ Hits 102241 102421 +180
+ Misses 61945 61595 -350
- Partials 8880 8882 +2
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Opt-in pebble-backed cache for debug_trace results. RPC nodes that flip it on get tip-following debug_trace as ms-level cache hits instead of seconds-level live re-execution. - TraceCache (x/evm/keeper/trace_cache.go): pebble db at <home>/data/trace_cache, keyed (height, tracer, txHash) per tx and (height, tracer) per block. height-leading keys make windowed prune a single DeleteRange. - TraceBaker (evmrpc/trace_baker.go): bounded worker pool that re-runs committed blocks through TraceBlockByNumber and writes results into TraceCache. Enqueue is non-blocking so consensus is unaffected; cache misses fall through to live re-execution. Includes startup catch-up (from last_baked+1) and rolling prune. - DebugAPI hits the cache for both per-tx and per-block traces and falls through transparently on miss. - EVM EndBlock enqueues height-1 (the latest block whose indexer state is guaranteed available). - App opens NewTraceCache and Closes it on shutdown so the WAL flushes cleanly (writes use NoSync for throughput). Configurable via [evm] in app.toml: trace_bake_enabled (default false) trace_bake_workers (default 1) trace_bake_queue_size (default 4096) trace_bake_tracers (default ["callTracer"]) trace_bake_window_blocks (default 0; 0 disables prune) trace_bake_block_results (default false) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
7c210c4 to
27dc9b0
Compare
Describe your changes and provide context
debug_trace*calls, stored under<home>/data/trace_db.[evm]config.Testing performed to validate your change