nabijaczleweli / cargo-update

A cargo subcommand for checking and applying updates to installed executables
MIT License
1.22k stars 42 forks source link

Panic when updating registry #58

Closed oldstager closed 6 years ago

oldstager commented 6 years ago

Steps to reproduce:

  1. cargo install-update -a
  2. result:
$ cargo install-update -a
    Updating registry `https://github.com/rust-lang/crates.io-index`

thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /checkout/src/libcore/option.rs:335:20
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Rust version: 1.22.1 and 1.24 nightly OS: Linux 4.13.12-1-ARCH #1 SMP PREEMPT Wed Nov 8 11:54:06 CET 2017 x86_64 GNU/Linux

mati865 commented 6 years ago

Cannot reproduce, can you paste backtrace from RUST_BACKTRACE=full cargo install-update -a?

oldstager commented 6 years ago

yes sure. here it is:

$ RUST_BACKTRACE=full cargo install-update -a
    Updating registry `https://github.com/rust-lang/crates.io-index`

thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /checkout/src/libcore/option.rs:335:20
stack backtrace:
   0:     0x55bc9393f723 - std::sys::imp::backtrace::tracing::imp::unwind_backtrace::h8ed7485deb8ab958
                               at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1:     0x55bc9393bd80 - std::sys_common::backtrace::_print::h3d4f9ea58578e60f
                               at /checkout/src/libstd/sys_common/backtrace.rs:69
   2:     0x55bc93943183 - std::panicking::default_hook::{{closure}}::h0088fe51b67c687c
                               at /checkout/src/libstd/sys_common/backtrace.rs:58
                               at /checkout/src/libstd/panicking.rs:381
   3:     0x55bc93942ef2 - std::panicking::default_hook::hf425c768c5ffbbad
                               at /checkout/src/libstd/panicking.rs:397
   4:     0x55bc939435e7 - std::panicking::rust_panic_with_hook::h25b934bb4484e9e0
                               at /checkout/src/libstd/panicking.rs:577
   5:     0x55bc939434b4 - std::panicking::begin_panic::h59483e27e93d7bc6
                               at /checkout/src/libstd/panicking.rs:538
   6:     0x55bc939433b9 - std::panicking::begin_panic_fmt::h5f221297e8a3dbdb
                               at /checkout/src/libstd/panicking.rs:522
   7:     0x55bc9394334a - rust_begin_unwind
                               at /checkout/src/libstd/panicking.rs:498
   8:     0x55bc9397b9a0 - core::panicking::panic_fmt::h4d1ab9bae1f32475
                               at /checkout/src/libcore/panicking.rs:71
   9:     0x55bc9397b8d6 - core::panicking::panic::h8ce57b1f932a0889
                               at /checkout/src/libcore/panicking.rs:51
  10:     0x55bc937b435b - cargo_update::ops::MainRepoPackage::needs_update::h4cd8e18195a930a0
  11:     0x55bc9378ce13 - cargo_install_update::actual_main::h7b01870422e34dc6
  12:     0x55bc9378c055 - cargo_install_update::main::h12eff33781938a09
  13:     0x55bc9394a3ec - __rust_maybe_catch_panic
                               at /checkout/src/libpanic_unwind/lib.rs:99
  14:     0x55bc93943e0b - std::rt::lang_start::h0c4e7dc3bd41bfa4
                               at /checkout/src/libstd/panicking.rs:459
                               at /checkout/src/libstd/panic.rs:361
                               at /checkout/src/libstd/rt.rs:59
  15:     0x7fdb14110f69 - __libc_start_main
  16:     0x55bc93787459 - _start
  17:                0x0 - <unknown>
nabijaczleweli commented 6 years ago

That's weird. In latest (v1.3.2) that function is:

self.version.is_none() || (*self.version.as_ref().unwrap() < *self.update_to_version())

Where the only unwrap() is the one on self.version, which it checked not to be None right beforehand.

mati865 commented 6 years ago

There was a bug about cargo version returning null some time ago. @oldstager does cargo version work for you?

oldstager commented 6 years ago

yes. it works:

cargo version cargo 0.23.0 (61fa02415 2017-11-22)

I surely think that this is weird.

nabijaczleweli commented 6 years ago

Are you sure you're on cargo-update v1.3.2?

bpdp commented 6 years ago

yes. updated to 1.3.2

oldstager commented 6 years ago

I found the cause: gutenberg. If I remove gutenberg crate, then this issue doesn't exist.

dns2utf8 commented 6 years ago

I had the same error (see #61) and I made a (maybe a bit hacky) solution #62.

nabijaczleweli commented 6 years ago

Confirmed. Is #61

nabijaczleweli commented 6 years ago

Fixed in v1.4.0.