From 40f852687b869ccdadbc124a69c15a391a243db0 Mon Sep 17 00:00:00 2001 From: konsti Date: Mon, 24 Jun 2024 16:42:55 +0200 Subject: [PATCH] Add context to unregistered task name to error context (#4471) I caused this error during development and having the name of the task on it is helpful for debugging. Split out from #4435 --- crates/uv-resolver/src/error.rs | 4 ++-- crates/uv-resolver/src/resolver/batch_prefetch.rs | 2 +- crates/uv-resolver/src/resolver/mod.rs | 15 ++++++++------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/crates/uv-resolver/src/error.rs b/crates/uv-resolver/src/error.rs index a2919a71da33..bb6a4d17e04d 100644 --- a/crates/uv-resolver/src/error.rs +++ b/crates/uv-resolver/src/error.rs @@ -36,8 +36,8 @@ pub enum ResolveError { #[error(transparent)] Join(#[from] tokio::task::JoinError), - #[error("Attempted to wait on an unregistered task")] - Unregistered, + #[error("Attempted to wait on an unregistered task: `{_0}`")] + UnregisteredTask(String), #[error("Package metadata name `{metadata}` does not match given name `{given}`")] NameMismatch { diff --git a/crates/uv-resolver/src/resolver/batch_prefetch.rs b/crates/uv-resolver/src/resolver/batch_prefetch.rs index dce938e3e4f1..ebb2b96aa408 100644 --- a/crates/uv-resolver/src/resolver/batch_prefetch.rs +++ b/crates/uv-resolver/src/resolver/batch_prefetch.rs @@ -74,7 +74,7 @@ impl BatchPrefetcher { let versions_response = index .packages() .wait_blocking(name) - .ok_or(ResolveError::Unregistered)?; + .ok_or_else(|| ResolveError::UnregisteredTask(name.to_string()))?; let VersionsResponse::Found(ref version_map) = *versions_response else { return Ok(()); diff --git a/crates/uv-resolver/src/resolver/mod.rs b/crates/uv-resolver/src/resolver/mod.rs index 86305726f310..6d9f62ab4766 100644 --- a/crates/uv-resolver/src/resolver/mod.rs +++ b/crates/uv-resolver/src/resolver/mod.rs @@ -726,7 +726,7 @@ impl ResolverState ResolverState ResolverState PubGrubDistribution::from_url(name, url), None => PubGrubDistribution::from_registry(name, version), }; - let version_id = dist.version_id(); // Wait for the metadata to be available. self.index .distributions() - .wait_blocking(&version_id) - .ok_or(ResolveError::Unregistered)?; + .wait_blocking(&dist.version_id()) + .ok_or_else(|| { + ResolveError::UnregisteredTask(dist.version_id().to_string()) + })?; return Ok(Dependencies::Available(Vec::default())); } @@ -1027,7 +1028,7 @@ impl ResolverState &archive.metadata, @@ -1343,7 +1344,7 @@ impl ResolverState version_map,