Weston allows user to preview running clients by pressing and releasing the <mod> key. If a client is in fullscreen mode, then attempting to activate preview mode causes Weston to lock-up.
1. Execute weston-terminal
2. Make weston-terminal fullscreen (<F11>)
3. Activate client previews by pressing and releasing the <mod> key (windows key in my case)
4. Observe Weston locks-up and can't vt-switch. SSH sessions still work and weston can be killed via ssh.
wayland (master) heads/master-0-g1521c62
drm (master) libdrm-2.4.50-0-g4c5de72
mesa (master) heads/master-0-g453651e
libva (master) heads/master-0-g73a11b3
intel-driver (master) heads/master-0-g9d0bd94
weston (master) heads/master-0-gc8f8dd8
This can be reproduced on desktop-shell running on x11 and drm backends. Weston actually ends up hogging 100% CPU and starts allocating huge amounts of memory until it runs out.
*** Bug 72856 has been marked as a duplicate of this bug. ***
I've sent a patch to the ml.
Author: Emilio Pozuelo Monfort <firstname.lastname@example.org>
Date: Tue Jan 7 16:41:39 2014 +0100
exposay: fix infinite loop with fullscreen surfaces
We were calling exposay_highlight_surface() inside a wl_list_for_each
loop for a layer, but exposay_highlight_surface() calls activate()
which calls shell_surface_update_layer(), which removes the surface
from its layer and reinserts it, causing an infinite loop.
Call exposay_highlight_surface() outside the for_each to avoid this.