Bug 83055

Summary: weston freezes temporarly
Product: Wayland Reporter: memeka <mihailescu2m>
Component: westonAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED NOTOURBUG QA Contact:
Severity: major    
Priority: medium    
Version: 1.5.0   
Hardware: ARM   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description memeka 2014-08-25 11:43:34 UTC
I am running wayland + libhybris + qtwayland + qml-compositor

EGL_PLATFORM=hwcomposer ./qml-compositor -platform hwcomposer -plugin EvdevMouse -plugin EvdevKeyboard

Then I start a nested instance of weston:

EGL_PLATFORM=wayland weston -Swayland-1 --fullscreen --width=1920 --height=1080

For few seconds it runs fine, then weston freezes. No refresh of the screen, mouse doesn't move, keyboard does nothing.

If I engage qml-compositor in any way - for example start another app (which results in wayland becoming a smaller window in an expose-like screen with all apps); or if I move the mouse in the right bottom corner (which again tells qml-compositor to takeFocus()) then weston unfreezes and does all the events - so all keyboard presses will be executed then.

If I run some other app in weston, e.g.:
EGL_PLATFORM=wayland WAYLAND_DISPLAY=wayland-1 /usr/local/lib/xbmc/xbmc.bin - which is a full-screen app - then also that app becomes "frozen"; and engaging qml-compositor will unfreeze it.

Same apps running directly under qml-compositor don't have this issue. Only weston.
Comment 1 memeka 2014-08-25 11:45:24 UTC
This is from running weston under gdb and stopping execution when weston freezes:

Program received signal SIGTSTP, Stopped (user).
0xb6daeb62 in epoll_wait () from /lib/arm-linux-gnueabihf/libc.so.6
(gdb) bt
#0  0xb6daeb62 in epoll_wait () from /lib/arm-linux-gnueabihf/libc.so.6
#1  0xb6fc31c0 in wl_event_loop_dispatch (loop=0x374f8, timeout=timeout@entry=-1) at src/event-loop.c:412
#2  0xb6fc22e0 in wl_display_run (display=display@entry=0x374b0) at src/wayland-server.c:986
#3  0x00016144 in main (argc=1, argv=<optimized out>) at src/compositor.c:4420
(gdb) c
Continuing.

Program received signal SIGTSTP, Stopped (user).
0xb6daeb62 in epoll_wait () from /lib/arm-linux-gnueabihf/libc.so.6
(gdb) c
Continuing.
[20:59:11.399] already in the native mode
[20:59:13.132] already in the native mode
[20:59:14.060] already in the native mode
[20:59:17.956] already in the native mode
[20:59:18.132] already in the native mode
Comment 2 Pekka Paalanen 2014-08-25 12:28:27 UTC
(In reply to comment #1)
> This is from running weston under gdb and stopping execution when weston
> freezes:
> 
> Program received signal SIGTSTP, Stopped (user).
> 0xb6daeb62 in epoll_wait () from /lib/arm-linux-gnueabihf/libc.so.6
> (gdb) bt
> #0  0xb6daeb62 in epoll_wait () from /lib/arm-linux-gnueabihf/libc.so.6
> #1  0xb6fc31c0 in wl_event_loop_dispatch (loop=0x374f8,
> timeout=timeout@entry=-1) at src/event-loop.c:412
> #2  0xb6fc22e0 in wl_display_run (display=display@entry=0x374b0) at
> src/wayland-server.c:986
> #3  0x00016144 in main (argc=1, argv=<optimized out>) at
> src/compositor.c:4420

That is perfectly normal. In IRC you said something about a crash, and getting the backtrace from a crash could be useful.
Comment 3 memeka 2014-08-25 12:43:33 UTC
It's not easy to reproduce the crash, it does not happen often, and only after killing weston on freeze, then start it again, killing it again etc...
I would think the crash is related to some other issue maybe...
Comment 4 Daniel Stone 2018-06-04 09:27:29 UTC
Based on what's written, I strongly suspect that qml-compositor is missing some display flushes (e.g. for frame/release events); we've never previously seen the Wayland backend hanging elsewhere. Please reopen if you can still reproduce and debug.

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.