Skip to content

rust-analyzer scip panics with: Invariant violation: file emitted multiple times. #21269

@badboy

Description

@badboy

The latest 2 releases of rust-analyzer panic when running scip on the Glean repository:

$ ./ra-2025-12-15 scip ~/mozilla/src/glean
Generating SCIP start...
rust-analyzer: Loading discovering sysroot
rust-analyzer: Loading querying project metadata
<snip>
rust-analyzer: Loading build script glean-core run
2025-12-15T11:14:27.965632+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(5e357) } })
<snip many more of similar looking errors>
2025-12-15T11:14:29.55569+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(76ce6) } })
2025-12-15T11:14:29.555891+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(76ce6) } })
2025-12-15T11:14:29.77546+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(5c859) } })
2025-12-15T11:14:29.775551+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(5c859) } })
2025-12-15T11:14:29.939084+01:00 ERROR Encountered enclosing definition with no name def=Module(Module { id: ModuleIdLt { [salsa id]: Id(76d79) } })

thread 'main' (6283581) panicked at crates/rust-analyzer/src/cli/scip.rs:227:17:
Invariant violation: file emitted multiple times.
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: rust_analyzer::cli::scip::<impl rust_analyzer::cli::flags::Scip>::run
   3: rust_analyzer::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

This is run as part of Mozilla's searchfox indexing step.
This was filed as a bug in our bug tracker: https://bugzilla.mozilla.org/show_bug.cgi?id=2005687

This works on the 2025-11-24, though with some errors logged, the DUPLICATE_SYMBOLS_MESSAGE line and lots of Duplicate symbol: lines.

The only thing that changed in the r-a scip code for those releases seems to be #21141, though I haven't bisected r-a to see if this is the actual commit that broke it or something else.


rust-analyzer version: rust-analyzer 0.3.2719-standalone (87cf663 2025-12-14)

rustc version: rustc 1.91.1 (ed61e7d7e 2025-11-07)

editor or extension: -

relevant settings: -

repository link (if public, optional): https://github.com/mozilla/glean

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-lsif/scipLSIF/SCIP conformance and featuresC-bugCategory: bugI-panic

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions