mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-18 21:38:31 +00:00
Log stuck lookups (#5778)
* Log stuck lookups every interval * Implement debug manually * Add comment * Do not print peers twice * Add SYNC_LOOKUPS_STUCK metric * Skip logging request root * use derivative * Merge branch 'unstable' of https://github.com/sigp/lighthouse into log-stuck-lookups * add req id to debug * Merge remote-tracking branch 'sigp/unstable' into log-stuck-lookups * Fix conflict with unstable
This commit is contained in:
@@ -30,6 +30,7 @@ mod tests;
|
||||
|
||||
const FAILED_CHAINS_CACHE_EXPIRY_SECONDS: u64 = 60;
|
||||
pub const SINGLE_BLOCK_LOOKUP_MAX_ATTEMPTS: u8 = 4;
|
||||
const LOOKUP_MAX_DURATION_SECS: u64 = 60;
|
||||
|
||||
pub enum BlockComponent<E: EthSpec> {
|
||||
Block(DownloadResult<Arc<SignedBeaconBlock<E>>>),
|
||||
@@ -665,4 +666,21 @@ impl<T: BeaconChainTypes> BlockLookups<T> {
|
||||
self.single_block_lookups.len() as i64,
|
||||
);
|
||||
}
|
||||
|
||||
pub fn log_stuck_lookups(&self) {
|
||||
let mut stuck_count = 0;
|
||||
for lookup in self.single_block_lookups.values() {
|
||||
if lookup.elapsed_since_created() > Duration::from_secs(LOOKUP_MAX_DURATION_SECS) {
|
||||
debug!(self.log, "Lookup maybe stuck";
|
||||
// Fields id and block_root are also part of the summary. However, logging them
|
||||
// here allows log parsers o index them and have better search
|
||||
"id" => lookup.id,
|
||||
"block_root" => ?lookup.block_root(),
|
||||
"summary" => ?lookup,
|
||||
);
|
||||
stuck_count += 1;
|
||||
}
|
||||
}
|
||||
metrics::set_gauge(&metrics::SYNC_LOOKUPS_STUCK, stuck_count);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user