diff --git a/src/cargo/core/registry.rs b/src/cargo/core/registry.rs index 724035bf1ef..b038635c328 100644 --- a/src/cargo/core/registry.rs +++ b/src/cargo/core/registry.rs @@ -739,6 +739,11 @@ impl<'gctx> Registry for PackageRegistry<'gctx> { } fn block_until_ready(&mut self) -> CargoResult<()> { + if cfg!(debug_assertions) { + // Force borrow to catch invalid borrows, regardless of which source is used and how it + // happens to behave this time + self.gctx.shell().verbosity(); + } for (source_id, source) in self.sources.sources_mut() { source .block_until_ready() diff --git a/src/cargo/util/flock.rs b/src/cargo/util/flock.rs index 627ddbc4be5..62821d85e59 100644 --- a/src/cargo/util/flock.rs +++ b/src/cargo/util/flock.rs @@ -392,6 +392,10 @@ fn acquire( lock_try: &dyn Fn() -> io::Result<()>, lock_block: &dyn Fn() -> io::Result<()>, ) -> CargoResult<()> { + if cfg!(debug_assertions) { + // Force borrow to catch invalid borrows outside of contention situations + gctx.shell().verbosity(); + } if try_acquire(path, lock_try)? { return Ok(()); }