rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
98.16k stars 12.69k forks source link

Compiler panic when compiling parity #41415

Closed adrianbrink closed 7 years ago

adrianbrink commented 7 years ago

Installing parity with cargo install --git https://github.com/paritytech/parity.git parity -f. The -f is due to me already having installed it and just wanting to update it.

I tried this code:

cargo install --git https://github.com/paritytech/parity.git parity -f

I expected to see this happen: Parity installs normally without a compiler panic.

Instead, this happened: The compiler panicked and threw this warning:

   Compiling fetch v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling jsonrpc-tcp-server v7.0.0 (https://github.com/paritytech/jsonrpc.git?branch=parity-1.7#27586b7e)
   Compiling jsonrpc-macros v7.0.0 (https://github.com/paritytech/jsonrpc.git?branch=parity-1.7#27586b7e)
error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

thread 'rustc' panicked at 'assertion failed: obligations.is_empty()', src/librustc/traits/coherence.rs:64
note: Run with `RUST_BACKTRACE=1` for a backtrace.

error: Could not compile `jsonrpc-macros`.
Build failed, waiting for other jobs to finish...
error: failed to compile `parity v1.7.0 (https://github.com/paritytech/parity.git#a16fb042)`, intermediate artifacts can be found at `/var/folders/p7/sf3y4yzx515cxstpcy8tv68c0000gp/T/cargo-install.gkq7584JODzy`

Caused by:
  build failed

Meta

rustc --version --verbose:

rustc 1.18.0-nightly (9f2abadca 2017-04-18)
binary: rustc
commit-hash: 9f2abadca2d065bf81772cb84981d0a22d8e98b3
commit-date: 2017-04-18
host: x86_64-apple-darwin
release: 1.18.0-nightly
LLVM version: 3.9

Backtrace:

➜  ~ RUST_BACKTRACE=1 cargo install --git https://github.com/paritytech/parity.git parity -f
    Updating git repository `https://github.com/paritytech/parity.git`
  Installing parity v1.7.0 (https://github.com/paritytech/parity.git#a16fb042)
    Updating registry `https://github.com/rust-lang/crates.io-index`
    Updating git repository `https://github.com/paritytech/rust-ctrlc.git`
    Updating git repository `https://github.com/paritytech/jsonrpc.git`
    Updating git repository `https://github.com/paritytech/ws-rs.git`
    Updating git repository `https://github.com/paritytech/elastic-array`
    Updating git repository `https://github.com/paritytech/js-precompiled.git`
    Updating git repository `https://github.com/paritytech/nanomsg.rs.git`
    Updating git repository `https://github.com/paritytech/rust-secp256k1`
    Updating git repository `https://github.com/paritytech/rust-rocksdb`
    Updating git repository `https://github.com/carllerche/slab`
    Updating git repository `https://github.com/paritytech/mio`
    Updating git repository `https://github.com/paritytech/bn`
    Updating git repository `https://github.com/paritytech/hyper`
    Updating git repository `https://github.com/nikvolf/parity-tokio-ipc`
    Updating git repository `https://github.com/alexcrichton/mio-named-pipes`
    Updating git repository `https://github.com/alexcrichton/tokio-named-pipes`
    Updating git repository `https://github.com/tokio-rs/tokio-line`
    Updating git repository `https://github.com/tomusdrw/tokio-proto`
    Updating git repository `https://github.com/tomusdrw/tokio-minihttp`
    Updating git repository `https://github.com/paritytech/libusb-rs`
    Updating git repository `https://github.com/paritytech/hidapi-rs`
    Updating git repository `https://github.com/paritytech/libusb-sys`
    Updating git repository `https://github.com/paritytech/rotor`
    Updating git repository `https://github.com/tomusdrw/ws-rs`
   Compiling target_info v0.1.0
   Compiling itoa v0.3.1
   Compiling typeable v0.1.2
   Compiling quote v0.3.15
   Compiling byteorder v1.0.0
   Compiling winapi-build v0.1.1
   Compiling stable_deref_trait v1.0.0
   Compiling ethcore-light v1.7.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling dtoa v0.4.1
   Compiling lazy_static v0.2.8
   Compiling futures v0.1.13
   Compiling ws2_32-sys v0.2.1
   Compiling kernel32-sys v0.2.2
   Compiling bitflags v0.4.0
   Compiling num-traits v0.1.37
   Compiling take v0.1.0
   Compiling slab v0.2.0 (https://github.com/carllerche/slab?rev=5476efcafb#5476efca)
   Compiling owning_ref v0.3.3
   Compiling heapsize v0.3.9
   Compiling term v0.4.5
   Compiling antidote v1.0.0
   Compiling number_prefix v0.2.7
   Compiling quick-error v1.1.0
   Compiling hamming v0.1.3
   Compiling bit-vec v0.4.3
   Compiling primal-bit v0.2.3
   Compiling bit-set v0.2.0
   Compiling lazycell v0.4.0
   Compiling ansi_term v0.9.0
   Compiling mio-named-pipes v0.1.4 (https://github.com/alexcrichton/mio-named-pipes#9c1bbb98)
   Compiling slab v0.3.0
   Compiling linked-hash-map v0.4.2
   Compiling regex-syntax v0.4.0
   Compiling language-tags v0.2.2
   Compiling tokio-service v0.1.0
   Compiling slab v0.2.0
   Compiling rustc-serialize v0.3.23
   Compiling smallvec v0.3.3
   Compiling either v1.1.0
   Compiling smallvec v0.2.1
   Compiling core-foundation-sys v0.2.3
   Compiling using_queue v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling tiny-keccak v1.2.1
   Compiling base-x v0.2.2
   Compiling scoped-tls v0.1.0
   Compiling httparse v1.2.2
   Compiling sha1 v0.2.0
   Compiling num-integer v0.1.34
   Compiling glob v0.2.11
   Compiling spmc v0.2.1
   Compiling cfg-if v0.1.0
   Compiling void v1.0.2
   Compiling unreachable v0.1.1
   Compiling crossbeam v0.2.10
   Compiling app_dirs v1.1.1
   Compiling serde v0.9.14
   Compiling table v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling bitflags v0.7.0
   Compiling winapi v0.2.8
   Compiling xml-rs v0.3.6
   Compiling bit-set v0.4.0
   Compiling semver-parser v0.7.0
   Compiling syntex_pos v0.58.1
   Compiling semver v0.6.0
   Compiling num-complex v0.1.37
   Compiling rustc_version v0.2.1
   Compiling unicode-xid v0.0.4
   Compiling synom v0.11.3
   Compiling syn v0.11.10
   Compiling parity v1.7.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling xmltree v0.3.2
   Compiling itertools v0.5.10
   Compiling base32 v0.3.1
   Compiling num-iter v0.1.33
   Compiling podio v0.1.5
   Compiling libc v0.2.21
   Compiling multibase v0.6.0
   Compiling rayon-core v1.0.0
   Compiling untrusted v0.3.2
   Compiling toml v0.2.1
   Compiling siphasher v0.1.3
   Compiling num_cpus v1.3.0
   Compiling ethcore-bloom-journal v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling isatty v0.1.3
   Compiling futures-cpupool v0.1.5
   Compiling termios v0.2.2
   Compiling rpassword v0.2.3
   Compiling iovec v0.1.0
   Compiling time v0.1.36
   Compiling net2 v0.2.27
   Compiling memchr v1.0.1
   Compiling transient-hashmap v0.4.0
   Compiling bytes v0.4.2
   Compiling rpassword v0.3.1
   Compiling aho-corasick v0.6.3
   Compiling daemonize v0.2.3
   Compiling thread-id v3.0.0
   Compiling msdos_time v0.1.5
   Compiling vergen v0.1.1
   Compiling strsim v0.6.0
   Compiling syntex_errors v0.58.1
   Compiling fdlimit v0.1.1
   Compiling utf8-ranges v1.0.0
   Compiling path v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling order-stat v0.1.3
   Compiling core-foundation v0.2.3
   Compiling thread_local v0.3.3
   Compiling regex v0.2.1
   Compiling serde_codegen_internals v0.14.2
   Compiling odds v0.2.25
   Compiling nodrop v0.1.9
   Compiling arrayvec v0.3.22
   Compiling unicode-normalization v0.1.4
   Compiling semver v0.1.20
   Compiling bloomchain v0.1.0
   Compiling traitobject v0.1.0
   Compiling ctrlc v1.1.1 (https://github.com/paritytech/rust-ctrlc.git#b5230171)
   Compiling miow v0.2.1
   Compiling rustc_version v0.1.7
   Compiling siphasher v0.2.2
   Compiling primal-estimate v0.2.1
   Compiling ethcore-util v1.7.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling hyper v0.10.9
   Compiling unicase v1.4.0
   Compiling primal-sieve v0.2.6
   Compiling ethcore-signer v1.7.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling bitflags v0.8.2
   Compiling integer-encoding v1.0.3
   Compiling lru-cache v0.1.1
   Compiling bigint v1.0.1
   Compiling bytes v0.3.0
   Compiling linked-hash-map v0.3.0
   Compiling vecio v0.1.0
   Compiling nix v0.7.0
   Compiling serde_derive v0.9.14
   Compiling elastic-array v0.7.0 (https://github.com/paritytech/elastic-array#14b2b99a)
   Compiling serde_json v0.9.10
   Compiling log v0.3.7
   Compiling mime v0.2.3
   Compiling stats v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling syntex_syntax v0.58.1
   Compiling mio v0.6.1 (https://github.com/paritytech/mio#15a57703)
   Compiling env_logger v0.4.2
   Compiling tokio-io v0.1.1
   Compiling docopt v0.7.0
   Compiling rotor v0.6.3 (https://github.com/paritytech/rotor#2a3764a8)
   Compiling mio v0.6.6
   Compiling mio-uds v0.6.4
   Compiling tokio-core v0.1.6
   Compiling jsonrpc-core v7.0.0 (https://github.com/paritytech/jsonrpc.git?branch=parity-1.7#27586b7e)
   Compiling tokio-uds v0.1.4
   Compiling ethabi v1.0.4
   Compiling parity-reactor v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling tokio-named-pipes v0.1.0 (https://github.com/alexcrichton/tokio-named-pipes#3a22f8fc)
   Compiling jsonrpc-server-utils v7.0.0 (https://github.com/paritytech/jsonrpc.git?branch=parity-1.7#27586b7e)
   Compiling phf_shared v0.7.21
   Compiling phf v0.7.21
   Compiling rand v0.3.15
   Compiling tokio-proto v0.1.0 (https://github.com/tomusdrw/tokio-proto#f6ee08cb)
   Compiling parity-wordlist v1.0.0
   Compiling ethcore-devtools v1.7.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling bn v0.4.4 (https://github.com/paritytech/bn#b97e95a4)
   Compiling tokio-minihttp v0.1.0 (https://github.com/tomusdrw/tokio-minihttp#8acbafae)
   Compiling tokio-proto v0.1.1
   Compiling ethcore-bigint v0.1.2 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling rlp v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling tokio-line v0.1.0 (https://github.com/tokio-rs/tokio-line#e2cf5758)
   Compiling num-bigint v0.1.37
   Compiling tempdir v0.3.5
   Compiling parity-tokio-ipc v0.1.3 (https://github.com/nikvolf/parity-tokio-ipc#247850cf)
   Compiling num-rational v0.1.36
   Compiling num v0.1.37
   Compiling jsonrpc-ipc-server v7.0.0 (https://github.com/paritytech/jsonrpc.git?branch=parity-1.7#27586b7e)
   Compiling primal-check v0.2.2
   Compiling phf_generator v0.7.21
   Compiling phf_codegen v0.7.21
   Compiling primal v0.2.3
   Compiling deque v0.3.1
   Compiling mime_guess v1.8.1
   Compiling rayon v0.6.0
   Compiling gcc v0.3.45
   Compiling rayon v0.7.0
   Compiling matches v0.1.4
   Compiling unicode-bidi v0.2.5
   Compiling unicode-segmentation v1.1.0
   Compiling heck v0.2.0
   Compiling idna v0.1.1
   Compiling native-contract-generator v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling libusb-sys v0.2.3 (https://github.com/paritytech/libusb-sys#c10b1180)
   Compiling ring v0.7.5
   Compiling url v1.4.0
   Compiling nanomsg-sys v0.5.0 (https://github.com/paritytech/nanomsg.rs.git?branch=parity-1.7#673b79be)
   Compiling rust-crypto v0.2.36
   Compiling eth-secp256k1 v0.5.6 (https://github.com/paritytech/rust-secp256k1#b6b67055)
   Compiling miniz-sys v0.1.9
   Compiling hidapi v0.3.1 (https://github.com/paritytech/hidapi-rs#9a127c1d)
   Compiling ws v0.6.0 (https://github.com/tomusdrw/ws-rs#7f8e416b)
   Compiling serde_urlencoded v0.4.2
   Compiling ws v0.5.3 (https://github.com/paritytech/ws-rs.git?branch=parity-1.7#30415c17)
   Compiling multihash v0.5.2
   Compiling cid v0.2.1
   Compiling cookie v0.3.1
   Compiling sha3 v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling hyper v0.10.0-a.0 (https://github.com/paritytech/hyper#498a39b9)
   Compiling jsonrpc-ws-server v7.0.0 (https://github.com/paritytech/jsonrpc.git?branch=parity-1.7#27586b7e)
   Compiling native-contracts v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling rocksdb-sys v0.3.0 (https://github.com/paritytech/rust-rocksdb#8579e896)
   Compiling ethkey v0.2.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling ethcrypto v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling igd v0.6.0
   Compiling flate2 v0.2.19
   Compiling zip v0.1.19
   Compiling libusb v0.3.0 (https://github.com/paritytech/libusb-rs#47c3d09c)
   Compiling security-framework-sys v0.1.14
   Compiling security-framework v0.1.14
   Compiling nanomsg v0.5.1 (https://github.com/paritytech/nanomsg.rs.git?branch=parity-1.7#673b79be)
   Compiling parking_lot_core v0.2.1
   Compiling native-tls v0.1.2
   Compiling parking_lot v0.4.0
   Compiling hyper-native-tls v0.2.2
   Compiling ethash v1.7.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling jsonrpc-pubsub v7.0.0 (https://github.com/paritytech/jsonrpc.git?branch=parity-1.7#27586b7e)
   Compiling ethstore v0.1.0 (https://github.com/paritytech/parity.git#a16fb042)
   Compiling jsonrpc-macros v7.0.0 (https://github.com/paritytech/jsonrpc.git?branch=parity-1.7#27586b7e)
error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: run with `RUST_BACKTRACE=1` for a backtrace

thread 'rustc' panicked at 'assertion failed: obligations.is_empty()', src/librustc/traits/coherence.rs:64
stack backtrace:
   0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
   1: std::panicking::default_hook::{{closure}}
   2: std::panicking::default_hook
   3: std::panicking::rust_panic_with_hook
   4: std::panicking::begin_panic
   5: rustc::traits::coherence::overlapping_impls
   6: rustc::traits::specialize::specialization_graph::Graph::insert
   7: rustc::ty::trait_def::TraitDef::add_impl_for_specialization
   8: rustc_typeck::coherence::coherent_trait
   9: rustc::ty::maps::<impl rustc::ty::maps::queries::coherent_trait<'tcx>>::try_get
  10: rustc::ty::maps::<impl rustc::ty::maps::queries::coherent_trait<'tcx>>::get
  11: rustc_typeck::coherence::check_coherence
  12: rustc_typeck::check_crate
  13: rustc_driver::driver::phase_3_run_analysis_passes::{{closure}}
  14: rustc::ty::context::TyCtxt::create_and_enter
  15: rustc_driver::driver::phase_3_run_analysis_passes
  16: rustc_driver::driver::compile_input
  17: rustc_driver::run_compiler
  18: std::panicking::try::do_call
  19: __rust_maybe_catch_panic
  20: <F as alloc::boxed::FnBox<A>>::call_box
  21: std::sys::imp::thread::Thread::new::thread_start
  22: _pthread_body
  23: _pthread_start

error: Could not compile `jsonrpc-macros`.
Build failed, waiting for other jobs to finish...
error: failed to compile `parity v1.7.0 (https://github.com/paritytech/parity.git#a16fb042)`, intermediate artifacts can be found at `/var/folders/p7/sf3y4yzx515cxstpcy8tv68c0000gp/T/cargo-install.TohlBOOFTwKy`

Caused by:
  build failed
Aaron1011 commented 7 years ago

@adrianbrink: This seems to be fixed on rustc 1.18.0-nightly (1785bca51 2017-04-21)

adrianbrink commented 7 years ago

@Aaron1011 nice :-)

arielb1 commented 7 years ago

Fixed in #41377.