On Sun, Jan 20, 2019 at 07:19:00AM +0000, Ximin Luo wrote: > I can't reproduce this, can you install cargo-dbgsym rustc-dbgsym rust-gdb > libstd-rust-1.31-dbgsym libllvm7-dbgsym libc6-dbg and provide a backtrace?
I can reliably reproduce this, and I think I've figured out the distinguishing factor. I can reproduce this every time when updating via a proxy. Here's a backtrace (I also installed libgit2-27-dbgsym): #0 __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:65 #1 0x0000555555be142a in std::ffi::c_str::CStr::from_ptr () #2 0x0000555555ae8013 in git2::transport::subtransport_action::{{closure}} () at /usr/share/cargo/registry/cargo-0.33.0/vendor/git2/src/transport.rs:223 #3 git2::panic::wrap (f=...) at /usr/share/cargo/registry/cargo-0.33.0/vendor/git2/src/panic.rs:41 #4 0x0000555555aeb0b9 in git2::transport::subtransport_action (stream=<optimized out>, raw_transport=0x5555563579e0, url=0x0, action=0) at /usr/share/cargo/registry/cargo-0.33.0/vendor/git2/src/transport.rs:222 #5 0x00007ffff7f62794 in git_smart__negotiation_step (transport=transport@entry=0x55555604b810, data=0x55555898e610, len=1124) at ./src/transports/smart.c:333 #6 0x00007ffff7f645e0 in git_smart__negotiate_fetch (transport=0x55555604b810, repo=<optimized out>, wants=0x555555fa9450, count=1) at ./src/transports/smart_protocol.c:392 #7 0x00007ffff7efd79e in git_fetch_negotiate (remote=remote@entry=0x555555fab360, opts=opts@entry=0x7fffffff5b90) at ./src/fetch.c:128 #8 0x00007ffff7f439ef in git_remote_download (remote=remote@entry=0x555555fab360, refspecs=refspecs@entry=0x7fffffff5aa0, opts=opts@entry=0x7fffffff5b90) at ./src/remote.c:929 #9 0x00007ffff7f4474e in git_remote_fetch (remote=0x555555fab360, refspecs=0x7fffffff5aa0, opts=0x7fffffff5b90, reflog_message=0x0) at ./src/remote.c:969 #10 0x0000555555aec767 in git2::remote::Remote::fetch (self=0x7fffffff5d30, refspecs=..., opts=<unknown type in /usr/lib/debug/.build-id/5a/dafb6a88215af9c0c802f3a7817d434ee4c89e.debug, CU 0x1b4d574, DIE 0x1b4fb9b>, reflog_msg=<optimized out>) at /usr/share/cargo/registry/cargo-0.33.0/vendor/git2/src/remote.rs:224 #11 0x00005555556a8e92 in cargo::sources::git::utils::fetch::{{closure}} (opts=...) at src/cargo/sources/git/utils.rs:723 #12 0x00005555556a6bd7 in cargo::sources::git::utils::with_fetch_options::{{closure}}::{{closure}} (f=...) at src/cargo/sources/git/utils.rs:653 #13 0x00005555556a59b8 in cargo::sources::git::utils::with_authentication (url=..., cfg=<optimized out>, f=...) at src/cargo/sources/git/utils.rs:450 #14 cargo::sources::git::utils::with_fetch_options::{{closure}} () at src/cargo/sources/git/utils.rs:638 #15 core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once (self=<optimized out>, args=<optimized out>) at /usr/src/rustc-1.32.0/src/libcore/ops/function.rs:286 #16 cargo::util::network::Retry::try (f=<optimized out>, self=<optimized out>) at src/cargo/util/network.rs:25 #17 cargo::util::network::with_retry (config=<optimized out>, callback=...) at src/cargo/util/network.rs:87 #18 cargo::sources::git::utils::with_fetch_options (git_config=0x7fffffff6370, url=0x555555ef1fd0, config=0x7fffffffd990, cb=...) at src/cargo/sources/git/utils.rs:637 #19 0x00005555556a8319 in cargo::sources::git::utils::fetch (repo=<optimized out>, url=0x5555563579e0, refspec=..., config=<optimized out>) at src/cargo/sources/git/utils.rs:709 #20 0x0000555555723f0e in <cargo::sources::registry::remote::RemoteRegistry<'cfg> as cargo::sources::registry::RegistryData>::update_index (self=<optimized out>) at src/cargo/sources/registry/remote.rs:211 #21 0x000055555564e9ea in cargo::sources::registry::RegistrySource::do_update (self=0x555555f08ce0) at src/cargo/sources/registry/mod.rs:471 #22 0x0000555555651202 in <cargo::sources::registry::RegistrySource<'cfg> as cargo::core::source::Source>::update (self=0x0) at src/cargo/sources/registry/mod.rs:562 #23 0x000055555590310b in cargo::core::registry::PackageRegistry::load::{{closure}} () at src/cargo/core/registry.rs:308 #24 cargo::core::registry::PackageRegistry::load (self=<optimized out>, source_id=..., kind=cargo::core::registry::Kind::Normal) at src/cargo/core/registry.rs:296 #25 cargo::core::registry::PackageRegistry::ensure_loaded (self=<optimized out>, namespace=..., kind=cargo::core::registry::Kind::Normal) at src/cargo/core/registry.rs:137 #26 0x0000555555904e07 in <cargo::core::registry::PackageRegistry<'cfg> as cargo::core::registry::Registry>::query (self=<optimized out>, dep=<optimized out>, f=..., fuzzy=false) at src/cargo/core/registry.rs:457 #27 0x00005555556fe8a5 in cargo::core::resolver::types::RegistryQueryer::query (self=<optimized out>, dep=<optimized out>) at src/cargo/core/resolver/types.rs:115 #28 cargo::core::resolver::context::Context::build_deps::{{closure}} () at src/cargo/core/resolver/context.rs:113 #29 core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once (self=0x7fffffff7160, args=...) at /usr/src/rustc-1.32.0/src/libcore/ops/function.rs:286 #30 <core::option::Option<T>>::map (f=0x7fffffff7160, self=<optimized out>) at /usr/src/rustc-1.32.0/src/libcore/option.rs:424 #31 <core::iter::Map<I, F> as core::iter::iterator::Iterator>::next (self=<optimized out>) at /usr/src/rustc-1.32.0/src/libcore/iter/mod.rs:1328 #32 <<core::result::Result<V, E> as core::iter::traits::FromIterator<core::result::Result<A, E>>>::from_iter::Adapter<Iter, E> as core::iter::iterator::Iterator>::next (self=<optimized out>) at /usr/src/rustc-1.32.0/src/libcore/result.rs:1232 #33 <&mut I as core::iter::iterator::Iterator>::next (self=<optimized out>) at /usr/src/rustc-1.32.0/src/libcore/iter/iterator.rs:2624 #34 0x000055555593cbf8 in <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter (iterator=<optimized out>) at /usr/src/rustc-1.32.0/src/liballoc/vec.rs:1788 #35 0x0000555555715a59 in <alloc::vec::Vec<T> as core::iter::traits::FromIterator<T>>::from_iter (iter=0x555555f18ad0) at /usr/src/rustc-1.32.0/src/liballoc/vec.rs:1700 #36 <core::result::Result<V, E> as core::iter::traits::FromIterator<core::result::Result<A, E>>>::from_iter (iter=...) at /usr/src/rustc-1.32.0/src/libcore/result.rs:1249 #37 core::iter::iterator::Iterator::collect (self=...) at /usr/src/rustc-1.32.0/src/libcore/iter/iterator.rs:1477 #38 cargo::core::resolver::context::Context::build_deps (self=<optimized out>, registry=<optimized out>, parent=<optimized out>, candidate=0x7fffffff7760, method=<optimized out>) at src/cargo/core/resolver/context.rs:110 #39 0x00005555557a2e84 in cargo::core::resolver::activate (cx=<optimized out>, registry=0x7fffffff99d0, parent=<optimized out>, candidate=..., method=0x555555e5bc18) at src/cargo/core/resolver/mod.rs:622 #40 0x000055555579f411 in cargo::core::resolver::activate_deps_loop (cx=..., registry=<optimized out>, summaries=..., config=<optimized out>) at src/cargo/core/resolver/mod.rs:188 #41 0x000055555579e028 in cargo::core::resolver::resolve (summaries=..., replacements=..., registry=..., try_to_use=0x7fffffff9c10, config=<unknown type in /usr/lib/debug/.build-id/5a/dafb6a88215af9c0c802f3a7817d434ee4c89e.debug, CU 0x77609a, DIE 0x881362>, print_warnings=<optimized out>) at src/cargo/core/resolver/mod.rs:125 #42 0x00005555559c4428 in cargo::ops::resolve::resolve_with_previous (registry=<optimized out>, ws=<optimized out>, method=<optimized out>, previous=<optimized out>, to_avoid=<optimized out>, specs=..., register_patches=<optimized out>, warn=<optimized out>) at src/cargo/ops/resolve.rs:326 #43 0x00005555558a3112 in cargo::ops::cargo_generate_lockfile::update_lockfile (ws=<optimized out>, opts=<optimized out>) at src/cargo/ops/cargo_generate_lockfile.rs:85 #44 0x00005555555d8737 in cargo::commands::update::exec (config=0x7fffffffd990, args=0x555555e92328) at src/bin/cargo/commands/update.rs:49 #45 0x00005555555b5832 in cargo::cli::execute_subcommand (config=<optimized out>, args=<optimized out>) at src/bin/cargo/cli.rs:163 #46 cargo::cli::main (config=0x7fffffffd990) at src/bin/cargo/cli.rs:79 #47 0x00005555555d8a4d in cargo::main () at src/bin/cargo/main.rs:53