Bug 73768

Summary: SIGSEGV closing window moved to another workspace crashes weston
Product: Wayland Reporter: Ricardo Vieira <ricardo.vieira>
Component: westonAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: medium    
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Ricardo Vieira 2014-01-18 16:59:24 UTC
This is easily reproducible by:

1: Open 2 weston-terminal windows
2: Move second window to workspace below (ctrl+shif+arrow down)
3: Close the moved window
4: crash
Comment 1 Ricardo Vieira 2014-01-18 17:03:19 UTC
PS: you might want to have a X session running because the only vt i could switch to was the one with X
Comment 2 U. Artie Eoff 2014-01-21 21:09:51 UTC
gdb backtrace?
Comment 3 Ricardo Vieira 2014-01-21 21:45:30 UTC
i cant get anything from gdb (do i need to build all the shared libraries with symbols?)

but i did an ltrace and i think it might help 
http://pastebin.com/w4tZJuD8

looks like it has something to do with pixman, also i noticed that if you use alt+<F4> to close the window, weston doesn't crash but the other terminal gets pulled to the current workspace.
Comment 4 Ricardo Vieira 2014-01-21 22:09:22 UTC
i had to run the commands before weston crashed because the window grabbed keyboard and mouse after the crash

http://pastebin.com/M023n8i4
Comment 5 Kristian Høgsberg 2014-01-22 20:25:45 UTC
commit d500bf1ac990d0d776c7a444a7478d2c9bb0e8fd
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Wed Jan 22 12:25:20 2014 -0800

    shell: Properly track the focus state surface
    
    We have to move the surface destroy listener around as we track the
    currently focused surface.  Introduce a helper function,
    focus_state_set_focus() for this and use throughout.
    
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=73768

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.