mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-05-15 14:15:52 -06:00
[GH-ISSUE #386] Panic in libei.rs:601 "LibeiInputCapture dropped without being terminated" on suspend/resume, causes gnome-shell crash #201
Labels
No labels
Xorg
documentation
enhancement
macos
pull-request
question
windows
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/lan-mouse#201
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @lleger1 on GitHub (Feb 12, 2026).
Original GitHub issue: https://github.com/feschber/lan-mouse/issues/386
Summary
lan-mouse panics at
input-capture/src/libei.rs:601withLibeiInputCapture dropped without being terminated!when the system goes through a suspend/resume cycle. This triggers an assertion failure in gnome-shell's EIS implementation(
eis_seat_destroy: "device list not empty"), causing gnome-shell to crash and dump core.The issue is reproducible — it happened 3 times in 2 days on the same system.
Environment
Steps to Reproduce
What Happens
On resume, the network is not yet available. lan-mouse enters a tight loop (~every 500ms) trying to reach the peer:
After ~20 seconds of this, the libei input capture session becomes invalid (gnome-shell's EIS backend has restarted), and lan-mouse panics:
Crash #1 — Feb 10, 15:35-15:37 (most severe, gnome-shell core dump)
This instance also caused gnome-shell to crash with a core dump:
Crash #2 — Feb 11, 21:19 (panic + unclean exit)
Expected Behavior
lan-mouse should gracefully handle suspend/resume by:
LibeiInputCapturesession before dropping itImpact
The gnome-shell crash caused by the
eis_seat_destroyassertion failure can lead to a full system freeze, requiring a hard reset. On Btrfs filesystems, a hard reset can cause the filesystem to remount as read-only on the next boot.Current Workaround
I created a systemd service to kill lan-mouse before suspend:
Suggested Fix
The panic at
libei.rs:601should be replaced with graceful error handling — either properly callingterminate()on theLibeiInputCapturebefore drop, or converting the panic to an error log and attempting to recreate the session.@nbolton commented on GitHub (Feb 12, 2026):
@whot ^
@feschber commented on GitHub (Feb 12, 2026):
The "dropped without being terminated" panic should be fixed in the development version (0.10.0 is quite old at this point, there is going to be a new release, soon).
I'm not sure if this is actually the root cause.
I tried to reproduce this on my system (GNOME 49.2) and couldn't reproduce a crash...
It may have something to do with lan-mouse trying to disable and close a session that no longer exists but I really cant tell:
I will try this out on Fedora, when I have the time.
@whot commented on GitHub (Feb 12, 2026):
A crash in gnome-shell cannot be a bug in lan-mouse (though we're grateful for lan-mouse triggering it so we can fix it ;). Crash 1 particular one looks like a bug in libeis, hitting an assertion means something internal has gone wrong. Can you file this issue with libei please (and also make sure that you're using the latest libei, 1.5.0 is the latest so you're good there).
Crash 2 looks like a gnome-shell issue too
This shouldn't really ever happen - gnome-shell (possibly via mutter) tries to read a gsettings but the value is not available. Usually this doesn't happen unless you run a combo of different git versions and not all have been updated - it certainly shouldn't happen in a released version. The resulting 20s of timeout could well be the DBus timeout.
So if all you're using are the rpms, then yes, this is a bug in libeis and gnome-shell, by the looks of it. And maybe one in lan-mouse, I leave that one up to @feschber :)