Skip to content

GitHub fast path causes panic due to async executor nesting #16860

@arlosi

Description

@arlosi

Problem

The GitHub fastpath was switched to use async, but it is used within an existing async runtime causing a panic.

Steps

RUST_BACKTRACE=1 cargo +nightly install --git https://github.com/mattwparas/steel steel-language-server steel-interpreter
    Updating git repository `https://github.com/mattwparas/steel`

thread 'main' (876640) panicked at /rust/deps/futures-executor-0.3.32/src/local_pool.rs:81:26:
cannot execute `LocalPool` executor from within another executor: EnterError
stack backtrace:
   0: __rustc::rust_begin_unwind
             at /rustc/900485642855f4729d926ecf24680a791f9293cf/library/std/src/panicking.rs:689:5
   1: core::panicking::panic_fmt
             at /rustc/900485642855f4729d926ecf24680a791f9293cf/library/core/src/panicking.rs:80:14
   2: core::result::unwrap_failed
             at /rustc/900485642855f4729d926ecf24680a791f9293cf/library/core/src/result.rs:1867:5
   3: cargo::sources::git::utils::fetch
   4: <cargo::sources::git::utils::GitRemote>::checkout
   5: <cargo::sources::git::source::GitSource>::fetch_db
   6: <cargo::sources::git::source::GitSource>::update
   7: <cargo::sources::git::source::GitSource as cargo::sources::source::Source>::query::{closure#0}
   8: <&mut dyn cargo::sources::source::Source as cargo::sources::source::Source>::query::{closure#0}
   9: <&mut dyn cargo::sources::source::Source as cargo::sources::source::Source>::query_vec::{closure#0}
  10: futures_executor::local_pool::block_on::<core::pin::Pin<alloc::boxed::Box<dyn core::future::future::Future<Output = core::result::Result<alloc::vec::Vec<cargo::sources::registry::index::IndexSummary>, anyhow::Error>>>>>
  11: cargo::ops::common_for_install_and_uninstall::select_dep_pkg
  12: <cargo::ops::cargo_install::InstallablePackage>::new
  13: <core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<(alloc::string::String, core::option::Option<semver::VersionReq>)>, cargo::ops::cargo_install::install::{closure#1}> as core::iter::traits::iterator::Iterator>::next
  14: cargo::ops::cargo_install::install
  15: cargo::commands::install::exec
  16: <cargo::cli::Exec>::exec
  17: cargo::main

Possible Solution(s)

No response

Notes

No response

Version

cargo 1.96.0-nightly (101549ddd 2026-04-08)
release: 1.96.0-nightly
commit-hash: 101549dddbd2b08e806f50154e3aa4cb3374cc21
commit-date: 2026-04-08
host: x86_64-unknown-linux-gnu
libgit2: 1.9.2 (sys:0.20.4 vendored)
libcurl: 8.19.0-DEV (sys:0.4.87+curl-8.19.0 vendored ssl:OpenSSL/3.5.4)
ssl: OpenSSL 3.5.4 30 Sep 2025
os: Arch Linux Rolling Release [64-bit]

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: bugS-triageStatus: This issue is waiting on initial triage.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions