Substreams
- Fix a panic when a module times out on tier2 while being executed from cached outputs
- eth_call timeout logs now properly show 0x-prefixed values
- Add environment variables to control retry behavior, "SUBSTREAMS_WORKER_MAX_RETRIES" (default 10) and "SUBSTREAMS_WORKER_MAX_TIMEOUT_RETRIES" (default 2), changing from previous defaults (720 and 3)
The worker_max_timeout_retries is the number of retries specifically applied to block execution timing out (ex: because of external calls) - The mechanism to slow down processing segments "ahead of blocks being sent to user" has been disabled on "noop-mode" requests, since these requests are used to pre-cache data and should not be slowed down.
- The "number of segments ahead" in this mechanism has been increased from
>number of parallel workers>to<number of parallel workers> * 1.5 - Tier2 now returns GRPC error codes for
DeadlineExceededwhen it times out, andResourceExhaustedwhen a request is rejected due to overload - Tier1 now correctly reports tier2 job outcomes in the
substreams request stats - Added jitter in "retry" logic to prevent all workers from retrying at the same time when tier2 are overloaded