mirror of
https://github.com/sigp/lighthouse.git
synced 2026-06-15 09:48:20 +00:00
The data (blob/column) request was rebuilt with a fresh `SingleLookupRequestState` (failed_processing = 0) after every processing failure, so `make_request`'s `failed_attempts() >= MAX_ATTEMPTS` bound never accumulated and the lookup re-downloaded/re-processed a permanently-invalid sidecar forever (observed as an OOM/hang under real crypto in `crypto_on_fail_with_bad_blob_*`). Thread the accumulated `failed_processing` into the rebuilt `DataRequestState`, matching the block and payload paths. Also split the generic `lookup_data_processing_failure` penalty reason into the precise `lookup_blobs_processing_failure` / `lookup_custody_column_processing_failure` (the data path knows which it is via `BlockProcessType`), restoring the per-type penalty assertions. Verified under the CI command (real crypto): FORK_NAME=electra ... crypto_on_fail_with_bad_blob_* -> pass FORK_NAME=fulu ... crypto_on_fail_with_bad_column_* -> pass