node: Don't needlessly fetch or announce
* We shouldn't announce if no refs were updated. * We shouldn't blindly fetch if we don't know if we have an item in storage.
This commit is contained in:
parent
f3d513783c
commit
7cbfde1e9b
|
|
@ -623,8 +623,13 @@ where
|
||||||
// We only announce refs here when the fetch wasn't user-requested. This is
|
// We only announce refs here when the fetch wasn't user-requested. This is
|
||||||
// because the user might want to announce his fork, once he has created one,
|
// because the user might want to announce his fork, once he has created one,
|
||||||
// or may choose to not announce anything.
|
// or may choose to not announce anything.
|
||||||
if let Err(e) = self.announce_refs(rid, &namespaces) {
|
match result {
|
||||||
error!(target: "service", "Failed to announce new refs: {e}");
|
FetchResult::Success { updated } if !updated.is_empty() => {
|
||||||
|
if let Err(e) = self.announce_refs(rid, &namespaces) {
|
||||||
|
error!(target: "service", "Failed to announce new refs: {e}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => log::debug!(target: "service", "Nothing to announce, no refs were updated.."),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -830,13 +835,18 @@ where
|
||||||
) {
|
) {
|
||||||
// Only if we do not have the repository locally do we fetch here.
|
// Only if we do not have the repository locally do we fetch here.
|
||||||
// If we do have it, only fetch after receiving a ref announcement.
|
// If we do have it, only fetch after receiving a ref announcement.
|
||||||
if let Ok(true) = self.storage.contains(id) {
|
match self.storage.contains(id) {
|
||||||
// Do nothing.
|
Ok(true) => {
|
||||||
} else {
|
// Do nothing.
|
||||||
// We may hit this branch due to an error returned by storage.
|
}
|
||||||
// We attempt to fetch in case of error because it's likely
|
Ok(false) => {
|
||||||
// the repository was corrupted, and fetching will fix it.
|
log::debug!(target: "service", "Missing tracked inventory {id}; initiating fetch..");
|
||||||
self.fetch(*id, announcer);
|
|
||||||
|
self.fetch(*id, announcer);
|
||||||
|
}
|
||||||
|
Err(e) => {
|
||||||
|
log::error!(target: "service", "Error checking local inventory: {e}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1204,6 +1214,7 @@ where
|
||||||
|
|
||||||
fn sync_and_announce(&mut self) {
|
fn sync_and_announce(&mut self) {
|
||||||
match self.sync_inventory() {
|
match self.sync_inventory() {
|
||||||
|
// TODO: This will always be `true` because the local clock is ticking.
|
||||||
Ok(updated) => {
|
Ok(updated) => {
|
||||||
if !updated.is_empty() {
|
if !updated.is_empty() {
|
||||||
if let Err(e) = self
|
if let Err(e) = self
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue