While the virtual terminal underneath weston-terminal wants to output a lot of data really fast, the terminal process may pseudo-randomly exit abruptly. When this happens, the Weston error console will show something like: | Error sending request: Resource temporarily unavailable | child 7795 exited On my system, this happens about one in two/tree times running "ls -lR /", but I initially observed the problem with "vlc -vv". Given the error message, I assume that the Wayland display socket has its kernel-level buffers saturated in the client-to-server direction, and libwayland-client exits instead of gracefully handling the transient error due to non-blocking mode. This is however merely a conjecture. This bug was originally reported as Debian #760043.
Weston server logs are not particularly interesting: ... [2075835.913] xdg_surface@19.set_transient_for(nil) [2075835.918] xdg_surface@19.set_margin(32, 32, 32, 32) [2075835.940] xdg_surface@19.set_transient_for(nil) [2075835.946] xdg_surface@19.set_margin(32, 32, 32, 32) [2075835.957] xdg_surface@19.set_transient_for(nil) [2075835.962] xdg_surface@19.set_margin(32, 32, 32, 32) [2075835.974] xdg_surface@19.set_transient_for(nil) [2075835.979] xdg_surface@19.set_margin(32, 32, 32, 32) [2075835.993] xdg_surface@19.set_transient_for(nil) [2075835.998] xdg_surface@19.set_margin(32, 32, 32, 32) [2075836.010] xdg_surface@19.set_transient_for(nil) [2075836.015] xdg_surface@19.set_margin(32, 32, 32, 32) [2075836.026] xdg_surface@19.set_transient_for(nil) [2075836.031] xdg_surface@19.set_margin(32, 32, 32, 32) [2075836.043] xdg_surface@19.set_transient_for(nil) [2075836.048] xdg_surface@19.set_margin(32, 32, 32, 32) [2075836.060] xdg_surface@19.set_transient_for(nil) [2075836.065] xdg_surface@19.set_margin(32, 32, 32, 32) [2075836.086] xdg_surface@19.set_transient_for(nil) [2075836.091] xdg_surface@19.set_margin(32, 32, 32, 32) [2075836.103] xdg_surface@19.set_transient_for(nil) child 9223 exited And the client debugs logs are pretty much as boring: (...) [2169794,437] -> xdg_surface@19.set_transient_for(nil) [2169794,443] -> xdg_surface@19.set_margin(32, 32, 32, 32) [2169794,470] -> xdg_surface@19.set_transient_for(nil) [2169794,477] -> xdg_surface@19.set_margin(32, 32, 32, 32) [2169794,504] -> xdg_surface@19.set_transient_for(nil) [2169794,510] -> xdg_surface@19.set_margin(32, 32, 32, 32) [2169794,538] -> xdg_surface@19.set_transient_for(nil) [2169794,544] -> xdg_surface@19.set_margin(32, 32, 32, 32) [2169794,571] -> xdg_surface@19.set_transient_for(nil) [2169794,577] -> xdg_surface@19.set_margin(32, 32, 32, 32) [2169794,605] -> xdg_surface@19.set_transient_for(nil) [2169794,611] -> xdg_surface@19.set_margin(32, 32, 32, 32) [2169794,638] -> xdg_surface@19.set_transient_for(nil) [2169794,644] -> xdg_surface@19.set_margin(32, 32, 32, 32) [2169794,671] -> xdg_surface@19.set_transient_for(nil) [2169794,677] -> xdg_surface@19.set_margin(32, 32, 32, 32) [2169794,705] -> xdg_surface@19.set_transient_for(nil) [2169794,711] -> xdg_surface@19.set_margin(32, 32, 32, 32) [2169794,738] -> xdg_surface@19.set_transient_for(nil) [2169794,744] -> xdg_surface@19.set_margin(32, 32, 32, 32) Error sending request: Ressource temporairement non disponible child 9290 exited
Ok, at least those logs are a good lead. Such a flood should not be sent at all, so we'd better fix the underlying cause rather than paper over it in libwayland-client.
Should be fixed by: commit b2c18647775732da740946eb199b1f2b46ba950b Author: Ondřej Majerech <majerech.o@gmail.com> Date: Sat Sep 13 16:35:45 2014 +0200 window: Don't needlessly sync parent and geometry It's part of Weston master and will be released with 1.6.0.
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.