Bug 55782

Summary: [drm] Keyboard input in terminal crashes client when no pointer device attached
Product: Wayland Reporter: Joe Konno <joe.konno>
Component: westonAssignee: Wayland bug list <wayland-bugs>
Status: VERIFIED FIXED QA Contact:
Severity: blocker    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Backtrace of the crashing client
Commits
Ooookay, re-attaching bt
gdb bt full
Weston bt full

Description Joe Konno 2012-10-08 22:03:12 UTC
Created attachment 68290 [details]
Backtrace of the crashing client

Without a pointer device (mouse) and under Weston-DRM, launching weston-terminal and typing a key causes an immediate SEGV in the client. This is not seen when Weston is run under X. Setting severity to ''blocker'' since there may be usage models where no pointer device is desired.

Attaching backtrace and commit ids. Running with latest Fedora 17 kernel (3.5.5) and udev.

NOTE: Running the client under gdb produces different behavior than without. When running under gdb, Wayland itself will SEGV as well. Without gdb, only the client terminates.
Comment 1 Joe Konno 2012-10-08 22:04:44 UTC
Created attachment 68291 [details]
Commits
Comment 2 Joe Konno 2012-10-08 22:06:02 UTC
Created attachment 68292 [details]
Ooookay, re-attaching bt
Comment 3 Joe Konno 2012-10-08 22:07:17 UTC
Created attachment 68293 [details]
gdb bt full
Comment 4 Pekka Paalanen 2012-10-09 06:10:38 UTC
Could you attach the backtrace uncompressed, as text/plain, please?

Compressed files are impossible to have a quick look in a browser.

FWIW, the x11 backend always provides both kbd and pointer, regardless of actual devices, so that's why it doesn't crash there.

When you say Wayland will crash, if the client runs under gdb, do you mean Weston? In that case, a backtrace of Weston might be interesting, too. Sounds like there is a bug in both. I guess that when the client is under gdb, it does not disconnect, and so Weston will have the opportunity to use some corrupted data before the client is destroyed.

Thanks.
Comment 5 Joe Konno 2012-10-09 14:42:34 UTC
(In reply to comment #4)
> Could you attach the backtrace uncompressed, as text/plain, please?

I did already-- attempting to view shortly after upload gave me an unexpected internal server error, hence the subsequent bz2 upload. Fortunately, all seems to be sorted out, and the text/plain version can be viewed here:

https://bugs.freedesktop.org/attachment.cgi?id=68292

> 
> Compressed files are impossible to have a quick look in a browser.
> 
> FWIW, the x11 backend always provides both kbd and pointer, regardless of
> actual devices, so that's why it doesn't crash there.
> 
> When you say Wayland will crash, if the client runs under gdb, do you mean
> Weston? In that case, a backtrace of Weston might be interesting, too.
> Sounds like there is a bug in both. I guess that when the client is under
> gdb, it does not disconnect, and so Weston will have the opportunity to use
> some corrupted data before the client is destroyed.

In the non-gdb case, weston-terminal (the 'client' referred to in bug description) will crash, and Weston will continue to run. When running gdb on weston-terminal or weston-terminal + Weston, but not when running on Weston alone, both terminal and weston will crash.

Attaching bt of Weston in the crashing scenario as well.

> 
> Thanks.
Comment 6 Joe Konno 2012-10-09 14:43:28 UTC
Created attachment 68346 [details]
Weston bt full
Comment 7 Kristian Høgsberg 2012-10-29 20:41:19 UTC
commit e530a0a240f7353f3f2ec1657baa6ea45eba076f
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Mon Oct 29 16:42:26 2012 -0400

    window: Ignore input_set_pointer_image() if we don't have a pointer
    
    https://bugs.freedesktop.org/show_bug.cgi?id=55782
Comment 8 Joe Konno 2012-10-30 22:25:01 UTC
Verified fix. Thanks, krh!

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.