Skip to content

Rustc crash with Rocket #48982

Closed
Closed
@Ronaldho80

Description

@Ronaldho80

Rustc reports an internal compiler error: unexpected panic by compiling a Rocket program.

I guess the problem is a logically wrong function call by calling two "#get" functions which are close to being similar which should report an error.

This is the code of failure:

#[get("/")]
fn lipmato(_user: UserId, ctrl: State<SafeController>, flash: Option<FlashMessage>) -> Template {

    let tmpl = &mut TemplateLipmato::from_controller(
        &ctrl,
    );
    
    if flash.is_some() {
        tmpl.error_occured(flash.unwrap().msg().to_string());
    }

    Template::render(
        "lipmato",
        tmpl)
}

// this function below should probably report an error. If I do not call this function, rustc works well. Otherwise it crashes.
#[get("/"), rank = 2]
fn lipmato(_user: UserId, ctrl: State<SafeController>) -> Redirect {

    if let Some(user) = ctrl.lock().unwrap().get_user_by_id(_user.0) {
        if !user.allow_lipmato {
            Redirect::to("/login")
        }
    }
}

Meta

herzog@Elfriede:~/Lipotype/ltx2/webapp-rs (master)*
$ cargo run --verbose
       Fresh ena v0.5.0
       Fresh bytecount v0.3.1
       Fresh fixedbitset v0.1.8
       Fresh bitflags v0.7.0
       Fresh language-tags v0.2.2
       Fresh encoding_index_tests v0.1.4
       Fresh termcolor v0.3.5
       Fresh untrusted v0.5.1
       Fresh safemem v0.2.0
       Fresh typeable v0.1.2
       Fresh term v0.4.6
       Fresh traitobject v0.1.0
       Fresh num-traits v0.2.1
       Fresh humansize v1.1.0
       Fresh percent-encoding v1.0.1
       Fresh gcc v0.3.54
       Fresh unidecode v0.2.0
       Fresh lazy_static v0.2.11
       Fresh winapi v0.2.8
       Fresh quick-error v1.2.1
       Fresh vec_map v0.8.0
       Fresh diff v0.1.11
       Fresh unicode-xid v0.1.0
       Fresh pkg-config v0.3.9
       Fresh data-encoding v2.1.1
       Fresh glob v0.2.11
       Fresh modifier v0.1.0
       Fresh itertools v0.4.19
       Fresh yansi v0.3.4
       Fresh linked-hash-map v0.5.1
       Fresh unicode-xid v0.0.4
       Fresh bit-vec v0.4.4
       Fresh dtoa v0.4.2
       Fresh regex-syntax v0.4.2
       Fresh rustc-serialize v0.3.24
       Fresh void v1.0.2
       Fresh ascii v0.7.1
       Fresh scoped_threadpool v0.1.9
       Fresh strsim v0.6.0
       Fresh linked-hash-map v0.4.2
       Fresh libc v0.2.39
       Fresh rustc-demangle v0.1.7
       Fresh ucd-util v0.1.1
       Fresh smallvec v0.4.4
       Fresh lalrpop-util v0.13.1 (file:///home/herzog/Lipotype/_rs/lalrpop/lalrpop-util)
       Fresh strsim v0.7.0
       Fresh ordermap v0.3.5
       Fresh cc v1.0.6
       Fresh quote v0.3.15
       Fresh chunked_transfer v0.3.1
       Fresh byteorder v0.5.3
       Fresh difference v2.0.0
       Fresh unicode-xid v0.0.3
       Fresh pear v0.0.12
       Fresh byteorder v1.2.1
       Fresh serde v1.0.30
       Fresh unicode-normalization v0.1.5
       Fresh siphasher v0.2.2
       Fresh lazy_static v1.0.0
       Fresh nodrop v0.1.12
       Fresh ordermap v0.2.13
       Fresh either v1.4.0
       Fresh winapi-build v0.1.1
       Fresh bitflags v1.0.1
       Fresh unicode-width v0.1.4
       Fresh memoffset v0.2.1
       Fresh ansi_term v0.11.0
       Fresh httparse v1.2.4
       Fresh cfg-if v0.1.2
       Fresh utf8-ranges v1.0.0
       Fresh version_check v0.1.3
       Fresh lalrpop-intern v0.13.1 (file:///home/herzog/Lipotype/_rs/lalrpop/lalrpop-intern)
       Fresh scopeguard v0.3.3
       Fresh hex v0.2.0
       Fresh state v0.3.3
       Fresh pest v0.4.1
       Fresh itoa v0.3.4
       Fresh matches v0.1.6
       Fresh xml-rs v0.3.6
       Fresh encoding-index-korean v1.20141219.5
       Fresh encoding-index-singlebyte v1.20141219.5
       Fresh encoding-index-tradchinese v1.20141219.5
       Fresh encoding-index-japanese v1.20141219.5
       Fresh encoding-index-simpchinese v1.20141219.5
       Fresh ascii-canvas v1.0.0
       Fresh term-painter v0.2.4
       Fresh error v0.1.9
       Fresh unsafe-any v0.4.2
       Fresh num-integer v0.1.36
       Fresh slug v0.1.2
       Fresh humantime v1.1.1
       Fresh proc-macro2 v0.2.3
       Fresh synom v0.11.3
       Fresh bit-set v0.4.0
       Fresh conduit-mime-types v0.7.3
       Fresh unreachable v1.0.0
       Fresh lru-cache v0.1.1
       Fresh time v0.1.39
       Fresh memchr v2.0.1
       Fresh memchr v1.0.2
       Fresh hostname v0.1.4
       Fresh isatty v0.1.6
       Fresh atty v0.2.8
       Fresh num_cpus v1.8.0
       Fresh rand v0.4.2
       Fresh regex-syntax v0.5.2
       Fresh petgraph v0.4.11
       Fresh csv v0.14.7
       Fresh base64 v0.6.0
       Fresh base64 v0.9.0
       Fresh toml v0.4.5
       Fresh arrayvec v0.4.7
       Fresh itertools v0.5.10
       Fresh xml-rs v0.7.0
       Fresh textwrap v0.9.0
       Fresh crossbeam-utils v0.2.2
       Fresh log v0.4.1
       Fresh serde_json v1.0.11
       Fresh unicode-bidi v0.3.4
       Fresh encoding v0.2.33
       Fresh typemap v0.3.3
       Fresh num-iter v0.1.35
       Fresh quote v0.4.2
       Fresh syn v0.11.11
       Fresh thread_local v0.3.5
       Fresh twoway v0.1.7
       Fresh aho-corasick v0.6.4
       Fresh csv v0.15.0
       Fresh buf_redux v0.6.3
       Fresh threadpool v1.7.1
       Fresh rand v0.3.22
       Fresh clap v2.31.1
       Fresh crossbeam-epoch v0.3.0
       Fresh log v0.3.9
       Fresh idna v0.1.4
       Fresh plugin v0.2.6
       Fresh num v0.1.42
       Fresh syn v0.12.14
       Fresh libsqlite3-sys v0.9.1
       Fresh derive-error-chain v0.11.0
       Fresh regex v0.2.9
       Fresh uuid v0.1.18
       Fresh rust-crypto v0.2.36
       Fresh backtrace-sys v0.1.16
       Fresh miniz-sys v0.1.10
       Fresh kernel32-sys v0.2.2
       Fresh crossbeam-deque v0.2.0
       Fresh mime v0.2.6
       Fresh pear_codegen v0.0.12
       Fresh unicase v1.4.2
       Fresh url v1.7.0
       Fresh chrono v0.2.25
       Fresh chrono v0.4.0
       Fresh serde_derive_internals v0.20.0
       Fresh env_logger v0.5.5
       Fresh docopt v0.7.0
       Fresh url v0.2.38
       Fresh pwhash v0.1.2
       Fresh backtrace v0.3.5
       Fresh flate2 v0.2.20
       Fresh atty v0.1.2
       Fresh remove_dir_all v0.3.0
       Fresh pbr v1.0.0-alpha.2 (file:///home/herzog/Lipotype/_rs/pb)
       Fresh rayon-core v1.4.0
       Fresh phf_shared v0.7.21
       Fresh hyper v0.10.13
       Fresh bson v0.11.1
       Fresh rusqlite v0.13.0
       Fresh flexi_logger v0.6.14
       Fresh serde_derive v1.0.30
       Fresh tiny_http v0.5.9
       Fresh error-chain v0.10.0
       Fresh error-chain v0.11.0
       Fresh sgml v0.1.0 (file:///home/herzog/Lipotype/ltx2/backend/sgml)
       Fresh lalrpop-snap v0.13.1 (file:///home/herzog/Lipotype/_rs/lalrpop/lalrpop-snap)
       Fresh tempdir v0.3.6
       Fresh rayon v0.7.1
       Fresh phf v0.7.21
       Fresh phf_generator v0.7.21
       Fresh iron v0.5.1
       Fresh chemsc v0.1.0 (file:///home/herzog/Lipotype/ltx2/backend/chemsc)
       Fresh tera v0.10.10
       Fresh dotenv v0.11.0
       Fresh phf_codegen v0.7.21
       Fresh config v0.1.0 (file:///home/herzog/Lipotype/ltx2/backend/config)
       Fresh lalrpop v0.13.1 (file:///home/herzog/Lipotype/_rs/lalrpop/lalrpop)
       Fresh ring v0.11.0
       Fresh cookie v0.9.2
       Fresh mime_guess v1.8.4
       Fresh rocket v0.3.6
       Fresh rocket v0.3.6 (file:///home/herzog/Lipotype/_rs/Rocket/lib)
       Fresh multipart v0.13.1 (file:///home/herzog/Lipotype/_rs/multipart)
       Fresh mfql v0.1.0 (file:///home/herzog/Lipotype/ltx2/backend/mfql)
       Fresh rocket-simpleauth v0.3.0 (file:///home/herzog/Lipotype/_rs/auth-rs)
       Fresh rocket_codegen v0.3.6 (file:///home/herzog/Lipotype/_rs/Rocket/codegen)
       Fresh rocket_contrib v0.3.6 (file:///home/herzog/Lipotype/_rs/Rocket/contrib)
       Fresh masterscan v0.1.0 (file:///home/herzog/Lipotype/ltx2/backend/masterscan)
       Fresh identifier v0.1.0 (file:///home/herzog/Lipotype/ltx2/backend/identifier)
   Compiling webapp v0.1.0 (file:///home/herzog/Lipotype/ltx2/webapp-rs)
     Running `rustc --crate-name webapp src/main.rs --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=e5134a661d18bea6 -C extra-filename=-e5134a661d18bea6 --out-dir /home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps -C incremental=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/incremental -L dependency=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps --extern identifier=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libidentifier-ecde33b94536b274.rlib --extern serde_derive=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libserde_derive-9ef300bae18f17d9.so --extern rustc_serialize=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librustc_serialize-bf5c97f604e4ef03.rlib --extern rocket=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librocket-f99ac287ddf2c766.rlib --extern chemsc=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libchemsc-cb707da6de644f23.rlib --extern dotenv=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libdotenv-34c6ff00f9a4b787.rlib --extern rusqlite=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librusqlite-5664e987999b25a6.rlib --extern config=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libconfig-8ca0b2bf5fa88b55.rlib --extern serde_json=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libserde_json-ba4c2990989a04b9.rlib --extern flexi_logger=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libflexi_logger-365847d141d31962.rlib --extern chrono=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libchrono-7253c7191da6dcfd.rlib --extern rocket_simpleauth=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librocket_simpleauth-f6f087242fb21a05.rlib --extern pwhash=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libpwhash-d16dcdec3e942cba.rlib --extern log=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/liblog-be8fd45b81578a9c.rlib --extern rocket_contrib=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librocket_contrib-92f14a190b0ae9d9.rlib --extern time=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libtime-78bfec62797427f9.rlib --extern multipart=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libmultipart-7c58dc6c197c6807.rlib --extern rocket_codegen=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librocket_codegen.so --extern regex=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libregex-88fde11c8200a853.rlib --extern serde=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libserde-5b036d096353ceb0.rlib --extern mfql=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libmfql-e19c5a5dd359cf3c.rlib --extern webapp=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libwebapp-235791e339709820.rlib -L native=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/build/rust-crypto-39daf7f7f6152475/out -L native=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/build/backtrace-sys-95d5acac02bbebb5/out/.libs -L native=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/build/miniz-sys-3922c4e1dc390d77/out -L native=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/build/ring-a072ff1445a1f647/out`
error: internal compiler error: Error constructed but not emitted

thread 'rustc' panicked at 'explicit panic', librustc_errors/diagnostic_builder.rs:242:13
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::_print
             at libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at libstd/sys_common/backtrace.rs:59
             at libstd/panicking.rs:207
   3: std::panicking::default_hook
             at libstd/panicking.rs:223
   4: core::ops::function::Fn::call
   5: std::panicking::rust_panic_with_hook
             at libstd/panicking.rs:403
   6: std::panicking::begin_panic
   7: <rustc_errors::diagnostic_builder::DiagnosticBuilder<'a> as core::ops::drop::Drop>::drop
   8: syntax::ext::expand::MacroExpander::expand_invoc
   9: syntax::ext::expand::MacroExpander::expand
  10: syntax::ext::expand::MacroExpander::expand_crate
  11: rustc_driver::driver::phase_2_configure_and_expand_inner::{{closure}}
  12: rustc_driver::driver::phase_2_configure_and_expand_inner
  13: rustc_driver::driver::compile_input
  14: rustc_driver::run_compiler

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: rustc 1.26.0-nightly (2789b067d 2018-03-06) running on x86_64-unknown-linux-gnu

note: compiler flags: -C debuginfo=2 -C incremental --crate-type bin

note: some of the compiler flags provided by cargo are hidden

error: Could not compile `webapp`.

Caused by:
  process didn't exit successfully: `rustc --crate-name webapp src/main.rs --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=e5134a661d18bea6 -C extra-filename=-e5134a661d18bea6 --out-dir /home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps -C incremental=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/incremental -L dependency=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps --extern identifier=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libidentifier-ecde33b94536b274.rlib --extern serde_derive=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libserde_derive-9ef300bae18f17d9.so --extern rustc_serialize=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librustc_serialize-bf5c97f604e4ef03.rlib --extern rocket=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librocket-f99ac287ddf2c766.rlib --extern chemsc=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libchemsc-cb707da6de644f23.rlib --extern dotenv=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libdotenv-34c6ff00f9a4b787.rlib --extern rusqlite=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librusqlite-5664e987999b25a6.rlib --extern config=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libconfig-8ca0b2bf5fa88b55.rlib --extern serde_json=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libserde_json-ba4c2990989a04b9.rlib --extern flexi_logger=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libflexi_logger-365847d141d31962.rlib --extern chrono=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libchrono-7253c7191da6dcfd.rlib --extern rocket_simpleauth=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librocket_simpleauth-f6f087242fb21a05.rlib --extern pwhash=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libpwhash-d16dcdec3e942cba.rlib --extern log=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/liblog-be8fd45b81578a9c.rlib --extern rocket_contrib=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librocket_contrib-92f14a190b0ae9d9.rlib --extern time=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libtime-78bfec62797427f9.rlib --extern multipart=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libmultipart-7c58dc6c197c6807.rlib --extern rocket_codegen=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/librocket_codegen.so --extern regex=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libregex-88fde11c8200a853.rlib --extern serde=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libserde-5b036d096353ceb0.rlib --extern mfql=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libmfql-e19c5a5dd359cf3c.rlib --extern webapp=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/deps/libwebapp-235791e339709820.rlib -L native=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/build/rust-crypto-39daf7f7f6152475/out -L native=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/build/backtrace-sys-95d5acac02bbebb5/out/.libs -L native=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/build/miniz-sys-3922c4e1dc390d77/out -L native=/home/herzog/Lipotype/ltx2/webapp-rs/target/debug/build/ring-a072ff1445a1f647/out` (exit code: 101)

Metadata

Metadata

Assignees

No one assigned

    Labels

    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions