[Pkg-rust-maintainers] Bug#918854: Bug#918854: Bug#918854: segfault updating crates.io index

Josh Triplett josh at joshtriplett.org
Tue Mar 5 19:33:17 GMT 2019


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 at 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 at entry=0x555555fab360, opts=opts at entry=0x7fffffff5b90) at ./src/fetch.c:128
#8  0x00007ffff7f439ef in git_remote_download (remote=remote at entry=0x555555fab360, refspecs=refspecs at entry=0x7fffffff5aa0, opts=opts at 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



More information about the Pkg-rust-maintainers mailing list