rust-windowing / rust-windowing/winit

Panic when using optirun and typing dead keys

Open
#440 14 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

B - bug C - needs investigation D - hard DS - x11 H - help wanted P - normal
Dominant language
Rust
Stars
6.2k
Forks
1.3k
Avg merge
2d 19h
Merged PRs (30d)
9

Description

thread 'main' panicked at 'attempt to subtract with overflow', /user/winit/src/platform/linux/x11/mod.rs:453:35
note: Run with `RUST_BACKTRACE=1` for a backtrace.
thread 'main' panicked at 'Failed to call XInternAtom (WM_PROTOCOLS): XError { description: "BadValue (integer parameter out of range for operation)", error_code: 2, request_code: 101, minor_code: 0 }', libcore/result.rs:945:5
stack backtrace:
   0:     0x55c1da1bda4b - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h89ba7da7562701ab
                               at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1:     0x55c1da1c2ac0 - std::sys_common::backtrace::print::h6c31ad9817780cde
                               at libstd/sys_common/backtrace.rs:71
                               at libstd/sys_common/backtrace.rs:59
   2:     0x55c1da1ba16d - std::panicking::default_hook::{{closure}}::h2058dd93a82247f5
                               at libstd/panicking.rs:207
   3:     0x55c1da1b9ecb - std::panicking::default_hook::h679f309f083c9814
                               at libstd/panicking.rs:223
   4:     0x55c1da1ba5bf - std::panicking::rust_panic_with_hook::hf996e11af0921186
                               at libstd/panicking.rs:402
   5:     0x55c1da1ba3e2 - std::panicking::begin_panic_fmt::h8164d62b26e4856a
                               at libstd/panicking.rs:349
   6:     0x55c1da1ba312 - rust_begin_unwind
                               at libstd/panicking.rs:325
   7:     0x55c1da201430 - core::panicking::panic_fmt::hdbf1954249c01b91
                               at libcore/panicking.rs:72
   8:     0x55c1da0d5b77 - core::result::unwrap_failed::h31ff2f70a7055851
                               at /checkout/src/libcore/macros.rs:26
   9:     0x55c1da0d429b - <core::result::Result<T, E>>::expect::h6409ca11a4445996
                               at /checkout/src/libcore/result.rs:809
  10:     0x55c1da09707f - <winit::platform::platform::x11::Window as core::ops::drop::Drop>::drop::h2ff265fd9c5889fb
                               at src/platform/linux/x11/mod.rs:1087
  11:     0x55c1da04bac4 - core::ptr::drop_in_place::h3a2f256af65c530f
                               at /checkout/src/libcore/ptr.rs:59
  12:     0x55c1da04b72f - core::ptr::drop_in_place::h1c4983e117d6cf94
                               at /checkout/src/libcore/ptr.rs:59
  13:     0x55c1da04cb34 - core::ptr::drop_in_place::h9fb6a3aefef6e214
                               at /checkout/src/libcore/ptr.rs:59
  14:     0x55c1da0593c7 - xim::main::ha55699d7099b253c
                               at examples/xim.rs:34
  15:     0x55c1da0543a1 - std::rt::lang_start::{{closure}}::ha4ff232e21bac6fb
                               at /checkout/src/libstd/rt.rs:74
  16:     0x55c1da1ba277 - std::panicking::try::do_call::hf0fdbf659d7b57b7
                               at libstd/rt.rs:59
                               at libstd/panicking.rs:306
  17:     0x55c1da1c9c1e - __rust_maybe_catch_panic
                               at libpanic_unwind/lib.rs:102
  18:     0x55c1da1b7cc5 - std::rt::lang_start_internal::hc1351a73a73f54f6
                               at libstd/panicking.rs:285
                               at libstd/panic.rs:361
                               at libstd/rt.rs:58
  19:     0x55c1da054381 - std::rt::lang_start::hc4156819566d16cc
                               at /checkout/src/libstd/rt.rs:74
  20:     0x55c1da05943d - main
  21:     0x7f427b478f49 - __libc_start_main
  22:     0x55c1da047259 - _start
  23:                0x0 - <unknown>
thread panicked while panicking. aborting.
fish: './target/debug/examples/xim' terminated by signal SIGILL (Illegal instruction)

This may be caused by https://github.com/tomaka/winit/pull/297.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with optirun and dead-key input using examples/xim.rs, then inspect src/platform/linux/x11/mod.rs around line 453 and the Window drop path around line 1087. Compare the behavior with the referenced tomaka/winit pull request 297. Done means the xim example no longer panics or aborts in this scenario.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, rust
Domain
desktop, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.