[Interest] Sporadic crash in QtWayland v5.9.5 on killing a window.

Sunder Negi ssnsundersinghnegi at gmail.com
Fri Jul 13 08:49:54 CEST 2018


Hi,

I am using QtWayland v5.9.5 with wayland v1.11.1 and Vivante driver
v5.0.11.p8.6.

I am finding below crash sporadically on window close.

#0  get_next_argument (signature=0x0, details=details at entry=0x6b6edd60) at
/usr/src/debug/wayland/1.11.1-r3.2/wayland-1.11.1/src/connection.c:437
#1  0x73b8e734 in wl_argument_from_va_list (signature=<optimized out>,
args=<optimized out>, count=20, ap=...) at /usr/src/debug/wayland/1.11.1-
r3.2/wayland-1.11.1/src/connection.c:500
#2  0x73b8c908 in wl_proxy_marshal_constructor (proxy=0x46b1a8,
opcode=opcode at entry=3, interface=0x73ba1714 <wl_callback_interface>) at
/usr/src/debug/wayland/1.11.1-r3.2/wayland-1.11.1/src/wayland-client.c:817
#3  0x755eb56c in wl_surface_frame (wl_surface=<optimized out>) at
/home/bamboo/automation/3.14.52-1.1.1/graphics_pkg/temp_
build_dir/build-imx6qsabresd/tmp/sysroots/imx6qsabresd/usr/
include/wayland-client-protocol.h:1490
#4  gcoOS_SetDisplayVirtualEx (Display=<optimized out>, Window=0x66cd9bac,
Context=0x66cd9cc4, Surface=<optimized out>, Offset=0, X=0, Y=0) at
gc_hal_user_wayland.c:1691
#5  0x7551c44c in veglSetDisplayFlip (Display=Display at entry=0x3db3c,
Surface=<optimized out>, BackBuffer=BackBuffer at entry=0x66cda428) at
gc_egl_platform.c:249
#6  0x75516d0c in veglSwapWorker (Display=0x3db3c) at gc_egl_swap.c:741
#7  0x75ae7f5c in start_thread (arg=0x6b6ee450) at
/usr/src/debug/glibc/2.24-r0/git/nptl/pthread_create.c:335
#8  0x75ddd408 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:86 from
/lib/libc.so.6

Suspecting heavy CPU load i tried to simulate the issue. I made a client
and added the following to its kill function

    // delay destruction until we hit another render sync
    QTimer::singleShot(10, this, [=]{
        if (windows.isEmpty()) {
          qDebug() << "no window, aborting";
          return;
        }
        windows.top()->close();
        windows.top()->deleteLater();
        windows.pop();
    });

My query is whether this way of simulating the delayed window closure
correct? I mean would this above code often lead to crash?

Complete code is at
https://github.com/cordlandwehr/imx6_testcase_wayland-client-crash.

Thanks,
Sunder Singh Negi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20180713/703626a9/attachment.html>


More information about the Interest mailing list