Skip to content

Nightly compiler error compiling wayland protocols on linux #119126

Closed

Description

@andrewdavidmackenzie

I have a nightly CI job that has started to fail running clippy, due to a compiler error compiling wayland-protocols.

The dependency chain is down from iced thru "clipboard_wayland" (0.2.0) to "smithay-clipboard" (0.6.6) and to "wayland-protocols" v0.29.5

"clipboard_wayland" 0.2.0 is the latest version on crates.io, but it depends on "smithay-clipboard" 0.6.6, while 0.7.0 is the latest version on crates.io.

Code

wayland-protocols 0.29.5

Meta

rustc --version --verbose:

rustc 1.76.0-nightly (3f28fe133 2023-12-18)
binary: rustc
commit-hash: 3f28fe133475ec5faf3413b556bf3cfb0d51336c
commit-date: 2023-12-18
host: x86_64-unknown-linux-gnu
release: 1.76.0-nightly
LLVM version: 17.0.6

Error output

See also: https://github.com/andrewdavidmackenzie/flow/actions/runs/7260567426/job/19779973687

error: internal compiler error: no errors encountered even though `span_delayed_bug` issued
| 
| error: internal compiler error: Trying to feed an already recorded value for query visibility key=DefId(0:6977 ~ wayland_protocols[6542]::unstable::xdg_decoration::v1::generated::client::{use#18}):
|                                 old value: Restricted(DefId(0:0 ~ wayland_protocols[6542]))
|                                 new value: Restricted(DefId(0:6958 ~ wayland_protocols[6542]::unstable::xdg_decoration::v1::generated::client))
|   |
|   = note: delayed at /rustc/3f28fe133475ec5faf3413b556bf3cfb0d51336c/compiler/rustc_middle/src/query/mod.rs:2206:1
|              0: <rustc_errors::DiagCtxtInner>::emit_diagnostic_without_consuming
|              1: <rustc_errors::DiagCtxtInner>::emit_diagnostic
|              2: <rustc_session::session::Session>::span_delayed_bug::<rustc_span::span_encoding::Span, alloc::string::String>
|              3: <rustc_resolve::Resolver>::feed_visibility
|              4: <rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor>::build_reduced_graph_for_use_tree
|              5: <rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor>::build_reduced_graph_for_use_tree
|              6: <rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor as rustc_ast::visit::Visitor>::visit_item
|              7: rustc_ast::visit::walk_item::<rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor>
|              8: <rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor as rustc_ast::visit::Visitor>::visit_item
|              9: rustc_ast::visit::walk_item::<rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor>
|             10: <rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor as rustc_ast::visit::Visitor>::visit_item
|             11: <rustc_resolve::Resolver as rustc_expand::base::ResolverExpand>::visit_ast_fragment_with_placeholders
|             12: <rustc_expand::expand::MacroExpander>::collect_invocations
|             13: <rustc_expand::expand::MacroExpander>::fully_expand_fragment
|             14: <rustc_expand::expand::MacroExpander>::expand_crate
|             15: rustc_interface::passes::resolver_for_lowering
|             16: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::resolver_for_lowering::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
|             17: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
|             18: rustc_query_impl::query_impl::resolver_for_lowering::get_query_non_incr::__rust_end_short_backtrace
|             19: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}
|             20: std::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
|             21: <<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
|             22: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
|                        at /rustc/3f28fe133475ec5faf3413b556bf3cfb0d51336c/library/alloc/src/boxed.rs:2015:9
|             23: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
|                        at /rustc/3f28fe133475ec5faf3413b556bf3cfb0d51336c/library/alloc/src/boxed.rs:2015:9
|             24: std::sys::unix::thread::Thread::new::thread_start
|                        at /rustc/3f28fe133475ec5faf3413b556bf3cfb0d51336c/library/std/src/sys/unix/thread.rs:108:17
|             25: <unknown>
|             26: __clone
|           
| 
| error: internal compiler error: Trying to feed an already recorded value for query visibility key=DefId(0:12939 ~ wayland_protocols[6542]::wlr::unstable::input_inhibitor::v1::generated::client::{use#18}):
|                                 old value: Restricted(DefId(0:0 ~ wayland_protocols[6542]))
|                                 new value: Restricted(DefId(0:12920 ~ wayland_protocols[6542]::wlr::unstable::input_inhibitor::v1::generated::client))
|   |
|   = note: delayed at /rustc/3f28fe133475ec5faf3413b556bf3cfb0d51336c/compiler/rustc_middle/src/query/mod.rs:2206:1
|              0: <rustc_errors::DiagCtxtInner>::emit_diagnostic_without_consuming
|              1: <rustc_errors::DiagCtxtInner>::emit_diagnostic
|              2: <rustc_session::session::Session>::span_delayed_bug::<rustc_span::span_encoding::Span, alloc::string::String>
|              3: <rustc_resolve::Resolver>::feed_visibility
|              4: <rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor>::build_reduced_graph_for_use_tree
|              5: <rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor>::build_reduced_graph_for_use_tree
|              6: <rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor as rustc_ast::visit::Visitor>::visit_item
|              7: rustc_ast::visit::walk_item::<rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor>
|              8: <rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor as rustc_ast::visit::Visitor>::visit_item
|              9: rustc_ast::visit::walk_item::<rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor>
|             10: <rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor as rustc_ast::visit::Visitor>::visit_item
|             11: <rustc_resolve::Resolver as rustc_expand::base::ResolverExpand>::visit_ast_fragment_with_placeholders
|             12: <rustc_expand::expand::MacroExpander>::collect_invocations
|             13: <rustc_expand::expand::MacroExpander>::fully_expand_fragment
|             14: <rustc_expand::expand::MacroExpander>::expand_crate
|             15: rustc_interface::passes::resolver_for_lowering
|             16: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::resolver_for_lowering::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
|             17: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
|             18: rustc_query_impl::query_impl::resolver_for_lowering::get_query_non_incr::__rust_end_short_backtrace
|             19: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}
|             20: std::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
|             21: <<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
|             22: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
|                        at /rustc/3f28fe133475ec5faf3413b556bf3cfb0d51336c/library/alloc/src/boxed.rs:2015:9
|             23: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
|                        at /rustc/3f28fe133475ec5faf3413b556bf3cfb0d51336c/library/alloc/src/boxed.rs:2015:9
|             24: std::sys::unix::thread::Thread::new::thread_start
|                        at /rustc/3f28fe133475ec5faf3413b556bf3cfb0d51336c/library/std/src/sys/unix/thread.rs:108:17
|             25: <unknown>
|             26: __clone
|           
| 
| note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
| 
| note: please attach the file at `/root/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wayland-protocols-0.29.5/rustc-ice-2023-12-19T17_29_19-7729.txt` to your bug report
| 
| note: compiler flags: --crate-type lib -C embed-bitcode=no -C debuginfo=2 -C split-debuginfo=unpacked -C instrument-coverage
| 
| note: some of the compiler flags provided by cargo are hidden
| 
| query stack during panic:
| end of query stack
| error: could not compile `wayland-protocols` (lib)
| warning: build failed, waiting for other jobs to finish...

Activity

  1. added
    C-bugCategory: This is a bug.
    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    on Dec 19, 2023
  2. added
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Dec 19, 2023
  3. danielhjacobs commented on Dec 19, 2023

    @danielhjacobs

    Ruffle is running into this same ICE with wayland-protocols: https://github.com/ruffle-rs/ruffle/actions/runs/7257406349/job/19773470499

  4. lukas-code commented on Dec 19, 2023

    @lukas-code
    Contributor

    minimized:

    mod outer {
        mod inner {}
        pub(crate) use inner::{};
    }
  5. sjwang05 commented on Dec 19, 2023

    @sjwang05
    Contributor

    searched nightlies: from nightly-2023-12-17 to nightly-2023-12-19
    regressed nightly: nightly-2023-12-19
    searched commit range: 6a62871...3f28fe1
    regressed commit: 321b656

    bisected with cargo-bisect-rustc v0.6.7

    Host triple: x86_64-pc-windows-msvc
    Reproduce with:

    cargo bisect-rustc

    #118657

  6. added
    S-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issue
    and removed
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Dec 19, 2023
  7. pinned this issue on Dec 19, 2023
  8. lqd commented on Dec 19, 2023

    @lqd
    Member

    cc @petrochenkov for the bisection

  9. self-assigned this
    on Dec 20, 2023
  10. petrochenkov commented on Dec 20, 2023

    @petrochenkov
    Contributor

    @lukas-code
    This snippet #119126 (comment) doesn't reproduce the ICE.

    Upd: sorry, it does, on 2018+ edition.

  11. petrochenkov commented on Dec 20, 2023

    @petrochenkov
    Contributor

    Fixed in #119168.

  12. added a commit that references this issue on Dec 20, 2023
  13. added a commit that references this issue on Dec 21, 2023
  14. andrewdavidmackenzie commented on Dec 22, 2023

    @andrewdavidmackenzie
    Author

    After being released to nightly yesterday, things are back to normal and building.
    Thanks!

  15. unpinned this issue on Dec 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️S-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issueT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions