fix: Wait for dependsOn on first run of turbo watch (#11953)
### Description
Fixes the issue which prevented `turbo watch` to be usable when e.g. we
have apps/* with dev task which is `persistent: true, interruptible:
false` (vite, nextjs dev servers), but packages had only build task and
were watched by `turbo watch`.
On the first run on turbo watch, it did not wait for dependencies to
complete, which caused dev servers to crash. Now it waits for them, and
subsequent runs are already handled correctly.
Fixes #8673
### Testing Instructions
A turbo.json with:
```
{
"tasks": {
"dev": {
"dependsOn": ["^build"],
"cache": false,
"persistent": true,
},
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**"]
},
}
}
```
A few packages with only build command, and an app with something like
`"dev": "vite"`
On an fresh cache, it should run first the build command of each
package, and only then start running dev command of the app. Before it
was running concurrently
I tested that it works by running `cargo test` locally and testing the
actual fix on my own repository.
I don't know if my approach is sound, but seems to work.
I hope I didn't miss anything (:
Also when I ran it on my repository, I got a crash which seemed to be
unrelated to my code:
<details>
```
"name" = "turbo"
"operating_system" = "Mac OS 26.3.0 [64-bit]"
"crate_version" = "2.8.11-canary.17"
"explanation" = """
file '/Users/alex/github/turborepo/crates/turborepo-cache/src/async_cache.rs' at line 205
"""
"cause" = """
panicked at /Users/alex/github/turborepo/crates/turborepo-cache/src/async_cache.rs:205:30:
called `Result::unwrap()` on an `Err` value: RecvError(())"""
"method" = "Panic"
"backtrace" = """
0: 0x104c1a114 - <std[d660558d17a23f5f]::backtrace::Backtrace>::capture
1: 0x104c106b4 - core[7459d98ca4fb6741]::slice::sort::unstable::quicksort::quicksort::<(&[u8], u64), <[(&[u8], u64)]>::sort_unstable_by_key<u64, <std[d660558d17a23f5f]::backtrace_rs::symbolize::gimli::macho::Object>::parse::{closure#2}>::{closure#0}>
2: 0x104c1aeb8 - <gimli[45cf989c3dcae431]::read::dwarf::Unit<gimli[45cf989c3dcae431]::read::endian_slice::EndianSlice<gimli[45cf989c3dcae431]::endianity::LittleEndian>, usize>>::new
3: 0x104c542f4 - <i16 as core[7459d98ca4fb6741]::fmt::Display>::fmt
4: 0x104c54098 - <u16 as core[7459d98ca4fb6741]::fmt::Display>::fmt
5: 0x102375eb0 - core[7459d98ca4fb6741]::slice::sort::shared::smallsort::bidirectional_merge::<(turbopath[7572578b8c3d8680]::relative_unix_path_buf::RelativeUnixPathBuf, alloc[3e8b6c29d82f350e]::string::String), <[(turbopath[7572578b8c3d8680]::relative_unix_path_buf::RelativeUnixPathBuf, alloc[3e8b6c29d82f350e]::string::String)]>::sort_by<<alloc[3e8b6c29d82f350e]::collections::btree::map::BTreeMap<turbopath[7572578b8c3d8680]::relative_unix_path_buf::RelativeUnixPathBuf, alloc[3e8b6c29d82f350e]::string::String> as core[7459d98ca4fb6741]::iter::traits::collect::FromIterator<(turbopath[7572578b8c3d8680]::relative_unix_path_buf::RelativeUnixPathBuf, alloc[3e8b6c29d82f350e]::string::String)>>::from_iter<alloc[3e8b6c29d82f350e]::vec::into_iter::IntoIter<(turbopath[7572578b8c3d8680]::relative_unix_path_buf::RelativeUnixPathBuf, alloc[3e8b6c29d82f350e]::string::String)>>::{closure#0}>::{closure#0}>
6: 0x102368974 - core[7459d98ca4fb6741]::slice::sort::shared::smallsort::sort4_stable::<&turborepo_engine[2df29975bebedb4d]::TaskNode, <&turborepo_engine[2df29975bebedb4d]::TaskNode as core[7459d98ca4fb6741]::cmp::PartialOrd>::lt>
7: 0x102376da8 - core[7459d98ca4fb6741]::slice::sort::shared::smallsort::bidirectional_merge::<(&str, async_graphql[67e2cb8b8fbfe97e]::model::type::__Type), <[(&str, async_graphql[67e2cb8b8fbfe97e]::model::type::__Type)]>::sort_by<<async_graphql[67e2cb8b8fbfe97e]::model::schema::__Schema>::types::{closure#0}::{closure#0}::{closure#1}>::{closure#0}>
8: 0x1026f3080 - <hyper[24c3a9e6c204e594]::client::dispatch::SendWhen<http_body_util[b28517669d51f6b2]::empty::Empty<bytes[29623e8ccd28cc35]::bytes::Bytes>> as core[7459d98ca4fb6741]::future::future::Future>::poll
9: 0x1027a5ef8 - <tokio[533919114f6ba51b]::runtime::task::harness::Harness<core[7459d98ca4fb6741]::pin::Pin<alloc[3e8b6c29d82f350e]::boxed::Box<<turborepo_analytics[63f5fdb53c2a30ed]::Worker<turborepo_api_client[74631ba5fa6504a7]::APIClient>>::send_events::{closure#0}>>, alloc[3e8b6c29d82f350e]::sync::Arc<tokio[533919114f6ba51b]::runtime::scheduler::current_thread::Handle>>>::complete::{closure#1}
10: 0x1022920c4 - <futures_util[99f59bbccdf046de]::stream::futures_unordered::FuturesUnordered<futures_util[99f59bbccdf046de]::stream::futures_ordered::OrderWrapper<futures_util[99f59bbccdf046de]::future::try_future::into_future::IntoFuture<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&u8, &alloc[3e8b6c29d82f350e]::vec::Vec<u8>>::{closure#0}::{closure#0}>>>>::unlink
11: 0x1022d8cf8 - <alloc[3e8b6c29d82f350e]::vec::Vec<futures_util[99f59bbccdf046de]::future::try_maybe_done::TryMaybeDone<futures_util[99f59bbccdf046de]::future::try_future::into_future::IntoFuture<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&turborepo_lib[ad3b0530d09d7157]::query::ChangedPackage, &alloc[3e8b6c29d82f350e]::vec::Vec<turborepo_lib[ad3b0530d09d7157]::query::ChangedPackage>>::{closure#0}::{closure#0}>>> as core[7459d98ca4fb6741]::iter::traits::collect::FromIterator<futures_util[99f59bbccdf046de]::future::try_maybe_done::TryMaybeDone<futures_util[99f59bbccdf046de]::future::try_future::into_future::IntoFuture<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&turborepo_lib[ad3b0530d09d7157]::query::ChangedPackage, &alloc[3e8b6c29d82f350e]::vec::Vec<turborepo_lib[ad3b0530d09d7157]::query::ChangedPackage>>::{closure#0}::{closure#0}>>>>::from_iter::<core[7459d98ca4fb6741]::iter::adapters::map::Map<core[7459d98ca4fb6741]::iter::adapters::map::Map<alloc[3e8b6c29d82f350e]::vec::into_iter::IntoIter<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&turborepo_lib[ad3b0530d09d7157]::query::ChangedPackage, &alloc[3e8b6c29d82f350e]::vec::Vec<turborepo_lib[ad3b0530d09d7157]::query::ChangedPackage>>::{closure#0}::{closure#0}>, <async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&turborepo_lib[ad3b0530d09d7157]::query::ChangedPackage, &alloc[3e8b6c29d82f350e]::vec::Vec<turborepo_lib[ad3b0530d09d7157]::query::ChangedPackage>>::{closure#0}::{closure#0} as futures_util[99f59bbccdf046de]::future::try_future::TryFutureExt>::into_future>, futures_util[99f59bbccdf046de]::future::try_maybe_done::TryMaybeDone<futures_util[99f59bbccdf046de]::future::try_future::into_future::IntoFuture<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&turborepo_lib[ad3b0530d09d7157]::query::ChangedPackage, &alloc[3e8b6c29d82f350e]::vec::Vec<turborepo_lib[ad3b0530d09d7157]::query::ChangedPackage>>::{closure#0}::{closure#0}>>::Future>>
12: 0x1022fbf60 - <alloc[3e8b6c29d82f350e]::vec::Vec<turborepo_lib[ad3b0530d09d7157]::query::package::Package> as core[7459d98ca4fb6741]::slice::sort::stable::BufGuard<turborepo_lib[ad3b0530d09d7157]::query::package::Package>>::with_capacity
13: 0x102b1b0c4 - <turborepo_engine[2df29975bebedb4d]::builder::TaskInheritanceResolver<turborepo_lib[ad3b0530d09d7157]::turbo_json::loader::UnifiedTurboJsonLoader>>::collect_from_extends_chain
14: 0x102b24d58 - <h2[9572fbca677d1bb7]::proto::streams::prioritize::Prioritize>::poll_complete::<hyper[24c3a9e6c204e594]::common::io::compat::Compat<hyper_rustls[de9a986ed2f40214]::stream::MaybeHttpsStream<hyper_util[dcf8865daf6d9123]::rt::tokio::TokioIo<tokio[533919114f6ba51b]::net::tcp::stream::TcpStream>>>, hyper[24c3a9e6c204e594]::proto::h2::SendBuf<bytes[29623e8ccd28cc35]::bytes::Bytes>>
15: 0x102999c90 - core[7459d98ca4fb6741]::ptr::drop_in_place::<turborepo_auth[24a75ab7cb855b07]::auth::sso::sso_login<turborepo_api_client[74631ba5fa6504a7]::APIClient>::{closure#0}>
16: 0x10298b138 - core[7459d98ca4fb6741]::ptr::drop_in_place::<<tonic[4675bc8b06f241d5]::server::grpc::Grpc<tonic_prost[9c2ec2dc4bdba599]::codec::ProstCodec<turborepo_daemon[5c6448365cc12697]::proto::PackageChangeEvent, turborepo_daemon[5c6448365cc12697]::proto::PackageChangesRequest>>>::map_request_unary<tonic[4675bc8b06f241d5]::body::Body>::{closure#0}>
17: 0x1022f0594 - <alloc[3e8b6c29d82f350e]::vec::Vec<alloc[3e8b6c29d82f350e]::string::String> as alloc[3e8b6c29d82f350e]::vec::spec_from_iter_nested::SpecFromIterNested<alloc[3e8b6c29d82f350e]::string::String, core[7459d98ca4fb6741]::iter::adapters::map::Map<core[7459d98ca4fb6741]::iter::adapters::filter::Filter<core[7459d98ca4fb6741]::iter::adapters::filter_map::FilterMap<core[7459d98ca4fb6741]::slice::iter::Iter<turborepo_lib[ad3b0530d09d7157]::cli::LinkTarget>, <clap_builder[45e26769a93d918c]::builder::value_parser::EnumValueParser<turborepo_lib[ad3b0530d09d7157]::cli::LinkTarget> as clap_builder[45e26769a93d918c]::builder::value_parser::TypedValueParser>::parse_ref::{closure#1}::{closure#0}>, <clap_builder[45e26769a93d918c]::builder::value_parser::EnumValueParser<turborepo_lib[ad3b0530d09d7157]::cli::LinkTarget> as clap_builder[45e26769a93d918c]::builder::value_parser::TypedValueParser>::parse_ref::{closure#1}::{closure#1}>, <clap_builder[45e26769a93d918c]::builder::value_parser::EnumValueParser<turborepo_lib[ad3b0530d09d7157]::cli::LinkTarget> as clap_builder[45e26769a93d918c]::builder::value_parser::TypedValueParser>::parse_ref::{closure#1}::{closure#2}>>>::from_iter
18: 0x1023417e0 - core[7459d98ca4fb6741]::iter::traits::iterator::Iterator::for_each::call::<async_graphql_value[95f86681d9b731db]::ConstValue, <alloc[3e8b6c29d82f350e]::vec::Vec<async_graphql_value[95f86681d9b731db]::ConstValue>>::extend_trusted<core[7459d98ca4fb6741]::iter::adapters::map::Map<core[7459d98ca4fb6741]::iter::adapters::map::Map<core[7459d98ca4fb6741]::slice::iter::IterMut<futures_util[99f59bbccdf046de]::future::try_maybe_done::TryMaybeDone<futures_util[99f59bbccdf046de]::future::try_future::into_future::IntoFuture<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&async_graphql[67e2cb8b8fbfe97e]::model::directive::__Directive, &alloc[3e8b6c29d82f350e]::vec::Vec<async_graphql[67e2cb8b8fbfe97e]::model::directive::__Directive>>::{closure#0}::{closure#0}>>>, futures_util[99f59bbccdf046de]::future::join_all::iter_pin_mut<futures_util[99f59bbccdf046de]::future::try_maybe_done::TryMaybeDone<futures_util[99f59bbccdf046de]::future::try_future::into_future::IntoFuture<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&async_graphql[67e2cb8b8fbfe97e]::model::directive::__Directive, &alloc[3e8b6c29d82f350e]::vec::Vec<async_graphql[67e2cb8b8fbfe97e]::model::directive::__Directive>>::{closure#0}::{closure#0}>>>::{closure#0}>, <futures_util[99f59bbccdf046de]::future::try_join_all::TryJoinAll<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&async_graphql[67e2cb8b8fbfe97e]::model::directive::__Directive, &alloc[3e8b6c29d82f350e]::vec::Vec<async_graphql[67e2cb8b8fbfe97e]::model::directive::__Directive>>::{closure#0}::{closure#0}> as core[7459d98ca4fb6741]::future::future::Future>::poll::{closure#0}>>::{closure#0}>::{closure#0}
19: 0x102341a58 - core[7459d98ca4fb6741]::iter::traits::iterator::Iterator::for_each::call::<async_graphql_value[95f86681d9b731db]::ConstValue, <alloc[3e8b6c29d82f350e]::vec::Vec<async_graphql_value[95f86681d9b731db]::ConstValue>>::extend_trusted<core[7459d98ca4fb6741]::iter::adapters::map::Map<core[7459d98ca4fb6741]::iter::adapters::map::Map<core[7459d98ca4fb6741]::slice::iter::IterMut<futures_util[99f59bbccdf046de]::future::try_maybe_done::TryMaybeDone<futures_util[99f59bbccdf046de]::future::try_future::into_future::IntoFuture<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&turborepo_lib[ad3b0530d09d7157]::query::task::RepositoryTask, &alloc[3e8b6c29d82f350e]::vec::Vec<turborepo_lib[ad3b0530d09d7157]::query::task::RepositoryTask>>::{closure#0}::{closure#1}>>>, futures_util[99f59bbccdf046de]::future::join_all::iter_pin_mut<futures_util[99f59bbccdf046de]::future::try_maybe_done::TryMaybeDone<futures_util[99f59bbccdf046de]::future::try_future::into_future::IntoFuture<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&turborepo_lib[ad3b0530d09d7157]::query::task::RepositoryTask, &alloc[3e8b6c29d82f350e]::vec::Vec<turborepo_lib[ad3b0530d09d7157]::query::task::RepositoryTask>>::{closure#0}::{closure#1}>>>::{closure#0}>, <futures_util[99f59bbccdf046de]::future::try_join_all::TryJoinAll<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&turborepo_lib[ad3b0530d09d7157]::query::task::RepositoryTask, &alloc[3e8b6c29d82f350e]::vec::Vec<turborepo_lib[ad3b0530d09d7157]::query::task::RepositoryTask>>::{closure#0}::{closure#1}> as core[7459d98ca4fb6741]::future::future::Future>::poll::{closure#0}>>::{closure#0}>::{closure#0}
20: 0x10235b3ec - <futures_util[99f59bbccdf046de]::stream::try_stream::try_collect::TryCollect<futures_util[99f59bbccdf046de]::stream::futures_ordered::FuturesOrdered<futures_util[99f59bbccdf046de]::future::try_future::into_future::IntoFuture<async_graphql[67e2cb8b8fbfe97e]::resolver_utils::list::resolve_list<&async_graphql[67e2cb8b8fbfe97e]::model::field::__Field, &alloc[3e8b6c29d82f350e]::vec::Vec<async_graphql[67e2cb8b8fbfe97e]::model::field::__Field>>::{closure#0}::{closure#0}>>, alloc[3e8b6c29d82f350e]::vec::Vec<async_graphql_value[95f86681d9b731db]::ConstValue>> as core[7459d98ca4fb6741]::future::future::Future>::poll
21: 0x104602ea8 - <hashbrown[399213940fbcef8]::raw::RawTable<(usize, std[d660558d17a23f5f]::thread::join_handle::JoinHandle<()>)>>::find::<hashbrown[399213940fbcef8]::map::equivalent_key<usize, usize, std[d660558d17a23f5f]::thread::join_handle::JoinHandle<()>>::{closure#0}>
22: 0x10461c608 - <tokio[533919114f6ba51b]::runtime::scheduler::multi_thread::idle::Idle>::unpark_worker_by_id
23: 0x1046503e8 - <tokio[533919114f6ba51b]::runtime::scheduler::multi_thread::worker::Context>::park
24: 0x104657c04 - <alloc[3e8b6c29d82f350e]::collections::btree::node::Handle<alloc[3e8b6c29d82f350e]::collections::btree::node::NodeRef<alloc[3e8b6c29d82f350e]::collections::btree::node::marker::Mut, signal_hook_registry[a0943506f653c186]::ActionId, alloc[3e8b6c29d82f350e]::sync::Arc<dyn for<'a> core[7459d98ca4fb6741]::ops::function::Fn<(&'a libc[f042c5d99acd6e3d]::unix::bsd::apple::siginfo_t,), Output = ()> + core[7459d98ca4fb6741]::marker::Send + core[7459d98ca4fb6741]::marker::Sync>, alloc[3e8b6c29d82f350e]::collections::btree::node::marker::LeafOrInternal>, alloc[3e8b6c29d82f350e]::collections::btree::node::marker::KV>>::next_leaf_edge
25: 0x104656f88 - <alloc[3e8b6c29d82f350e]::collections::btree::node::NodeRef<alloc[3e8b6c29d82f350e]::collections::btree::node::marker::Mut, signal_hook_registry[a0943506f653c186]::ActionId, alloc[3e8b6c29d82f350e]::sync::Arc<dyn for<'a> core[7459d98ca4fb6741]::ops::function::Fn<(&'a libc[f042c5d99acd6e3d]::unix::bsd::apple::siginfo_t,), Output = ()> + core[7459d98ca4fb6741]::marker::Send + core[7459d98ca4fb6741]::marker::Sync>, alloc[3e8b6c29d82f350e]::collections::btree::node::marker::LeafOrInternal>>::choose_parent_kv
26: 0x10464fbf8 - <tokio[533919114f6ba51b]::runtime::scheduler::multi_thread::worker::Context>::run
27: 0x1046273a0 - core[7459d98ca4fb6741]::ptr::drop_in_place::<[alloc[3e8b6c29d82f350e]::boxed::Box<dyn core[7459d98ca4fb6741]::ops::function::FnOnce<(), Output = ()> + core[7459d98ca4fb6741]::marker::Send>]>
28: 0x104611e40 - <tokio[533919114f6ba51b]::time::sleep::Sleep as core[7459d98ca4fb6741]::future::future::Future>::poll
29: 0x1045fdbc8 - <tokio[533919114f6ba51b]::runtime::io::registration_set::RegistrationSet>::deregister
30: 0x1045fd8fc - <dyn core[7459d98ca4fb6741]::any::Any>::downcast_ref::<&str>
31: 0x104610a24 - tokio[533919114f6ba51b]::signal::unix::signal_enable
32: 0x104650d60 - <tokio[533919114f6ba51b]::runtime::scheduler::multi_thread::worker::Context>::run_task
33: 0x1045f6d88 - <std[d660558d17a23f5f]::thread::local::LocalKey<tokio[533919114f6ba51b]::runtime::context::Context>>::try_with::<tokio[533919114f6ba51b]::runtime::context::set_scheduler<(), tokio[533919114f6ba51b]::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}>::{closure#0}, ()>
34: 0x1046586fc - <std[d660558d17a23f5f]::sys::thread_local::native::lazy::Storage<core[7459d98ca4fb6741]::cell::Cell<(u64, u64)>, !>>::get_or_init_slow::<<std[d660558d17a23f5f]::hash::random::RandomState>::new::KEYS::__rust_std_internal_init_fn>
35: 0x10464fd4c - <tokio[533919114f6ba51b]::runtime::scheduler::multi_thread::worker::Context>::run
36: 0x104613828 - <core[7459d98ca4fb6741]::result::Result<core[7459d98ca4fb6741]::task::poll::Poll<tokio[533919114f6ba51b]::task::coop::RestoreOnPending>, std[d660558d17a23f5f]::thread::local::AccessError>>::unwrap_or
37: 0x1045ef978 - <tokio[533919114f6ba51b]::runtime::io::driver::Handle>::deregister_source::<tokio[533919114f6ba51b]::process::imp::Pipe>
38: 0x1045f1934 - <tokio[533919114f6ba51b]::runtime::signal::Driver>::new
39: 0x1045ec8ec - std[d660558d17a23f5f]::panic::catch_unwind::<core[7459d98ca4fb6741]::panic::unwind_safe::AssertUnwindSafe<<tokio[533919114f6ba51b]::runtime::task::harness::Harness<tokio[533919114f6ba51b]::runtime::blocking::task::BlockingTask<<tokio[533919114f6ba51b]::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio[533919114f6ba51b]::runtime::blocking::schedule::BlockingSchedule>>::complete::{closure#0}>, ()>
40: 0x104613fc4 - <tokio[533919114f6ba51b]::util::sharded_list::ShardedList<tokio[533919114f6ba51b]::runtime::task::Task<alloc[3e8b6c29d82f350e]::sync::Arc<tokio[533919114f6ba51b]::runtime::scheduler::current_thread::Handle>>, tokio[533919114f6ba51b]::runtime::task::core::Header>>::new
41: 0x104611274 - <<tokio[533919114f6ba51b]::signal::unix::Signal>::recv::{closure#0} as core[7459d98ca4fb6741]::future::into_future::IntoFuture>::into_future
42: 0x1045f5a18 - <alloc[3e8b6c29d82f350e]::boxed::Box<tokio[533919114f6ba51b]::runtime::task::core::Cell<tokio[533919114f6ba51b]::runtime::blocking::task::BlockingTask<alloc[3e8b6c29d82f350e]::boxed::Box<<str as tokio[533919114f6ba51b]::net::addr::sealed::ToSocketAddrsPriv>::to_socket_addrs::{closure#0}>>, tokio[533919114f6ba51b]::runtime::blocking::schedule::BlockingSchedule>> as core[7459d98ca4fb6741]::ops::drop::Drop>::drop
43: 0x1045f3180 - <tokio[533919114f6ba51b]::io::poll_evented::PollEvented<tokio[533919114f6ba51b]::process::imp::Pipe>>::poll_read
44: 0x1045ec258 - std[d660558d17a23f5f]::panic::catch_unwind::<core[7459d98ca4fb6741]::panic::unwind_safe::AssertUnwindSafe<tokio[533919114f6ba51b]::runtime::task::harness::poll_future<tokio[533919114f6ba51b]::runtime::blocking::task::BlockingTask<alloc[3e8b6c29d82f350e]::boxed::Box<<str as tokio[533919114f6ba51b]::net::addr::sealed::ToSocketAddrsPriv>::to_socket_addrs::{closure#0}>>, tokio[533919114f6ba51b]::runtime::blocking::schedule::BlockingSchedule>::{closure#0}>, core[7459d98ca4fb6741]::task::poll::Poll<core[7459d98ca4fb6741]::result::Result<alloc[3e8b6c29d82f350e]::vec::into_iter::IntoIter<core[7459d98ca4fb6741]::net::socket_addr::SocketAddr>, std[d660558d17a23f5f]::io::error::Error>>>
45: 0x1045edf2c - <parking_lot[eb6f82ab889b13b3]::raw_rwlock::RawRwLock>::deadlock_acquire
46: 0x1045ee1a4 - <usize>::pow
47: 0x1045ff7c0 - tokio[533919114f6ba51b]::net::unix::ucred::impl_macos::get_peer_cred
48: 0x104602ea8 - <hashbrown[399213940fbcef8]::raw::RawTable<(usize, std[d660558d17a23f5f]::thread::join_handle::JoinHandle<()>)>>::find::<hashbrown[399213940fbcef8]::map::equivalent_key<usize, usize, std[d660558d17a23f5f]::thread::join_handle::JoinHandle<()>>::{closure#0}>
49: 0x10461c644 - <tokio[533919114f6ba51b]::runtime::scheduler::multi_thread::idle::Idle>::notify_should_wakeup
50: 0x104623b50 - core[7459d98ca4fb6741]::ptr::drop_in_place::<tokio[533919114f6ba51b]::io::poll_evented::PollEvented<tokio[533919114f6ba51b]::process::imp::Pipe>>
51: 0x1046252ec - core[7459d98ca4fb6741]::ptr::drop_in_place::<alloc[3e8b6c29d82f350e]::string::FromUtf8Error>
52: 0x104621850 - core[7459d98ca4fb6741]::ptr::drop_in_place::<core[7459d98ca4fb6741]::option::Option<alloc[3e8b6c29d82f350e]::boxed::Box<tokio[533919114f6ba51b]::runtime::scheduler::current_thread::Core>>>
53: 0x1045f38e8 - <tokio[533919114f6ba51b]::io::poll_evented::PollEvented<mio[e403ca7550f323b5]::net::uds::stream::UnixStream>>::poll_write
54: 0x1046360d0 - <tokio[533919114f6ba51b]::sync::batch_semaphore::Semaphore>::poll_acquire
55: 0x1046140a8 - <tokio[533919114f6ba51b]::util::sharded_list::ShardedList<tokio[533919114f6ba51b]::runtime::task::Task<alloc[3e8b6c29d82f350e]::sync::Arc<tokio[533919114f6ba51b]::runtime::scheduler::current_thread::Handle>>, tokio[533919114f6ba51b]::runtime::task::core::Header>>::new
56: 0x10461138c - <tokio[533919114f6ba51b]::runtime::metrics::worker::WorkerMetrics as core[7459d98ca4fb6741]::default::Default>::default
57: 0x10463b258 - <tokio[533919114f6ba51b]::runtime::scheduler::multi_thread::handle::Handle>::schedule_local
58: 0x104635e10 - <tokio[533919114f6ba51b]::sync::batch_semaphore::Semaphore>::add_permits_locked::{closure#1}
59: 0x10462ee40 - std[d660558d17a23f5f]::thread::lifecycle::spawn_unchecked::<<tokio[533919114f6ba51b]::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}, ()>::{closure#0}
60: 0x104c39198 - <std[d660558d17a23f5f]::process::Output as core[7459d98ca4fb6741]::fmt::Debug>::fmt
61: 0x188433c08 - __pthread_cond_wait"""
```
</details>
I tried to fix it in async_cache file by simply avoiding unwrap. I can
remove that if needed
Thank you!
---------
Co-authored-by: Anthony Shew <anthony.shew@vercel.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Turbobot <turbobot@vercel.com>
Co-authored-by: Anthony Shew <anthonyshew@gmail.com>