Gracefully handle missing sync committee duties (#3086)
## Issue Addressed Closes https://github.com/sigp/lighthouse/issues/3085 Closes https://github.com/sigp/lighthouse/issues/2953 ## Proposed Changes Downgrade some of the warnings logged by the VC which were useful during development of the sync committee service but are creating trouble now that we avoid populating the `sync_duties` map with 0 active validators.
This commit is contained in:
parent
f5d8fdbb4e
commit
c2e9354126
@ -403,7 +403,7 @@ pub async fn poll_sync_committee_duties_for_period<T: SlotClock + 'static, E: Et
|
|||||||
if local_indices.is_empty() {
|
if local_indices.is_empty() {
|
||||||
debug!(
|
debug!(
|
||||||
duties_service.context.log(),
|
duties_service.context.log(),
|
||||||
"No validators, not polling for sync comittee";
|
"No validators, not polling for sync committee duties";
|
||||||
"sync_committee_period" => sync_committee_period,
|
"sync_committee_period" => sync_committee_period,
|
||||||
);
|
);
|
||||||
return Ok(());
|
return Ok(());
|
||||||
|
@ -4,7 +4,7 @@ use environment::RuntimeContext;
|
|||||||
use eth2::types::BlockId;
|
use eth2::types::BlockId;
|
||||||
use futures::future::join_all;
|
use futures::future::join_all;
|
||||||
use futures::future::FutureExt;
|
use futures::future::FutureExt;
|
||||||
use slog::{crit, debug, error, info, trace, warn};
|
use slog::{crit, debug, error, info, trace};
|
||||||
use slot_clock::SlotClock;
|
use slot_clock::SlotClock;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
@ -154,11 +154,16 @@ impl<T: SlotClock + 'static, E: EthSpec> SyncCommitteeService<T, E> {
|
|||||||
.checked_sub(slot_duration / 3)
|
.checked_sub(slot_duration / 3)
|
||||||
.unwrap_or_else(|| Duration::from_secs(0));
|
.unwrap_or_else(|| Duration::from_secs(0));
|
||||||
|
|
||||||
let slot_duties = self
|
let slot_duties = if let Some(duties) = self
|
||||||
.duties_service
|
.duties_service
|
||||||
.sync_duties
|
.sync_duties
|
||||||
.get_duties_for_slot::<E>(slot, &self.duties_service.spec)
|
.get_duties_for_slot::<E>(slot, &self.duties_service.spec)
|
||||||
.ok_or_else(|| format!("Error fetching duties for slot {}", slot))?;
|
{
|
||||||
|
duties
|
||||||
|
} else {
|
||||||
|
debug!(log, "No duties known for slot {}", slot);
|
||||||
|
return Ok(());
|
||||||
|
};
|
||||||
|
|
||||||
if slot_duties.duties.is_empty() {
|
if slot_duties.duties.is_empty() {
|
||||||
debug!(
|
debug!(
|
||||||
@ -490,9 +495,9 @@ impl<T: SlotClock + 'static, E: EthSpec> SyncCommitteeService<T, E> {
|
|||||||
spec,
|
spec,
|
||||||
)),
|
)),
|
||||||
None => {
|
None => {
|
||||||
warn!(
|
debug!(
|
||||||
log,
|
log,
|
||||||
"Missing duties for subscription";
|
"No duties for subscription";
|
||||||
"slot" => duty_slot,
|
"slot" => duty_slot,
|
||||||
);
|
);
|
||||||
all_succeeded = false;
|
all_succeeded = false;
|
||||||
@ -500,6 +505,15 @@ impl<T: SlotClock + 'static, E: EthSpec> SyncCommitteeService<T, E> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if subscriptions.is_empty() {
|
||||||
|
debug!(
|
||||||
|
log,
|
||||||
|
"No sync subscriptions to send";
|
||||||
|
"slot" => slot,
|
||||||
|
);
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
// Post subscriptions to BN.
|
// Post subscriptions to BN.
|
||||||
debug!(
|
debug!(
|
||||||
log,
|
log,
|
||||||
|
Loading…
Reference in New Issue
Block a user