rust-windowing / rust-windowing/winit
Panic when using optirun and typing dead keys
Open
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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