Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-130970

[wayland] qtmm examples crash on rockchip when using wayland

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P4: Low
    • None
    • 6.9
    • Multimedia
    • None
    • Linux/Yocto

    Description

      running some qtmultimedia examples on a rock-5c board (boot2qt build with meta-rockchip) crashes on some qtmm examples

      crashing:

      • videowidget
      • player
      • camera
      • mediaplayerapp

      not crashing:

      • spectrum
      • audiorecorder
      • videographicsitem

      crash occurs on the main thread in libmali after wl_compositor@4.create_surface. unfortunately there seems to be a stack corruption, so the backtrace is not very helpful

      [1606798.333] wl_display@1.delete_id(19)
      [1606798.366] wl_registry@18.global(1, "wl_compositor", 5)
      [1606798.381] wl_registry@18.global(2, "wl_subcompositor", 1)
      [1606798.393] wl_registry@18.global(3, "wp_viewporter", 1)
      [1606798.404] wl_registry@18.global(4, "zxdg_output_manager_v1", 2)
      [1606798.415] wl_registry@18.global(5, "wp_presentation", 1)
      [1606798.426] wl_registry@18.global(6, "wp_single_pixel_buffer_manager_v1", 1)
      [1606798.436] wl_registry@18.global(7, "wp_tearing_control_manager_v1", 1)
      [1606798.455] wl_registry@18.global(8, "zwp_relative_pointer_manager_v1", 1)
      [1606798.477] wl_registry@18.global(9, "zwp_pointer_constraints_v1", 1)
      [1606798.493] wl_registry@18.global(10, "zwp_input_timestamps_manager_v1", 1)
      [1606798.508] wl_registry@18.global(11, "weston_capture_v1", 1)
      [1606798.524] wl_registry@18.global(12, "wl_data_device_manager", 3)
      [1606798.539] wl_registry@18.global(13, "wl_shm", 1)
      [1606798.554] wl_registry@18.global(14, "mali_buffer_sharing", 5)
      [1606798.581]  -> wl_registry@18.bind(14, "mali_buffer_sharing", 5, new id [unknown]@20)
      [1606798.601] wl_registry@18.global(15, "wl_seat", 7)
      [1606798.617] wl_registry@18.global(16, "zwp_linux_dmabuf_v1", 3)
      [1606798.632] wl_registry@18.global(17, "weston_direct_display_v1", 1)
      [1606798.647] wl_registry@18.global(18, "weston_content_protection", 1)
      [1606798.661] wl_registry@18.global(19, "zwp_input_panel_v1", 1)
      [1606798.676] wl_registry@18.global(20, "zwp_input_method_v1", 1)
      [1606798.691] wl_registry@18.global(21, "zwp_text_input_manager_v1", 1)
      [1606798.706] wl_registry@18.global(22, "xdg_wm_base", 5)
      [1606798.721] wl_registry@18.global(23, "weston_desktop_shell", 1)
      [1606798.736] wl_registry@18.global(24, "wl_output", 4)
      [1606798.750] wl_callback@19.done(741)
      [1606798.782]  -> wl_display@1.sync(new id wl_callback@21)
      [1606799.091] wl_display@1.delete_id(21)
      [1606799.126] mali_buffer_sharing@20.alloc_device("display-subsystem")
      [1606799.267] wl_callback@21.done(741)
      [1606799.308]  -> mali_buffer_sharing@20.auth(2)
      [1606799.322]  -> wl_display@1.sync(new id wl_callback@22)
      [1606799.629] wl_display@1.delete_id(22)
      [1606799.660] wl_callback@22.done(741)
      warning: queue 0x5555653b10 destroyed while proxies still attached:
        wl_callback@22 still attached
        wl_callback@21 still attached
        mali_buffer_sharing@20 still attached
        wl_callback@19 still attached
      [1607004.758]  -> wl_compositor@4.create_surface(new id wl_surface@23)
      [1607044.588]  -> wl_compositor@4.create_surface(new id wl_surface@24)
      [1607044.769]  -> wl_surface@24.attach(nil, 0, 0)
      [1607044.787]  -> wl_surface@24.commit()
      [1607044.814]  -> wl_subcompositor@5.get_subsurface(new id wl_subsurface@25, wl_surface@24, wl_surface@23)
      [1607044.859]  -> wl_subsurface@25.set_desync()
      [1607044.881]  -> wl_surface@24.set_buffer_scale(1)
      [1607044.912]  -> wl_compositor@4.create_region(new id wl_region@26)
      [1607044.936]  -> wl_surface@24.set_input_region(wl_region@26)
      [1607044.948]  -> wl_region@26.destroy()
      [1607044.969]  -> wl_subsurface@25.set_position(11, 11)
      [1607044.990]  -> wl_surface@24.set_buffer_transform(0)
      [1607045.002]  -> wl_surface@24.commit()
      [1607045.014]  -> wl_subsurface@25.set_position(11, 11)
      [1607045.059]  -> wl_compositor@4.create_region(new id wl_region@27)
      [1607045.073]  -> wl_region@27.add(0, 0, 618, 468)
      [1607045.087]  -> wl_surface@24.set_opaque_region(wl_region@27)
      [1607045.111]  -> wl_region@27.destroy()
      [1607045.712]  -> wl_surface@23.attach(nil, 0, 0)
      [1607045.742]  -> wl_surface@23.commit()
      [1607045.772]  -> xdg_wm_base@3.get_xdg_surface(new id xdg_surface@28, wl_surface@23)
      [1607045.796]  -> xdg_surface@28.get_toplevel(new id xdg_toplevel@29)
      [1607045.821]  -> xdg_toplevel@29.set_min_size(157, 72)
      [1607045.833]  -> xdg_toplevel@29.set_max_size(0, 0)
      [1607045.864]  -> xdg_toplevel@29.set_title("Video Widget Example")
      [1607045.922]  -> xdg_toplevel@29.set_app_id("videowidget")
      [1607045.954]  -> wl_surface@23.set_buffer_scale(1)
      [1607094.952]  -> wl_subsurface@25.set_position(14, 41)
      [1607095.122]  -> wl_compositor@4.create_region(new id wl_region@30)
      [1607095.153]  -> wl_region@30.add(3, 30, 640, 540)
      [1607095.173]  -> wl_surface@23.set_opaque_region(wl_region@30)
      [1607095.188]  -> wl_region@30.destroy()
      [1607095.218]  -> xdg_toplevel@29.set_min_size(163, 105)
      [1607095.254]  -> xdg_toplevel@29.set_max_size(16777221, 16777248)
      [1607095.395]  -> wl_surface@23.set_buffer_transform(0)
      [1607095.423]  -> wl_surface@23.commit()
      [1607095.717] wl_keyboard@16.repeat_info(40, 400)
      [1607095.762] wl_keyboard@16.keymap(1, fd 13, 64756)
      [1607110.218] wl_display@1.delete_id(26)
      [1607110.258] wl_display@1.delete_id(27)
      [1607110.272] wl_display@1.delete_id(30)
      [1607110.737] xdg_toplevel@29.wm_capabilities(array[12])
      [1607110.777] xdg_toplevel@29.configure(0, 0, array[0])
      [1607110.798] xdg_surface@28.configure(742)
      [1607110.866]  -> xdg_surface@28.ack_configure(742)
      [1607110.901]  -> xdg_surface@28.set_window_geometry(0, 0, 646, 573)
      [1607111.243]  -> wl_shm@9.create_pool(new id wl_shm_pool@30, fd 22, 1480632)
      [1607111.282]  -> wl_shm_pool@30.create_buffer(new id wl_buffer@27, 0, 646, 573, 2584, 0)
      [1607125.957]  -> wl_surface@23.damage_buffer(0, 0, 646, 30)
      [1607126.050]  -> wl_surface@23.damage_buffer(0, 30, 3, 540)
      [1607126.074]  -> wl_surface@23.damage_buffer(643, 30, 3, 540)
      [1607126.095]  -> wl_surface@23.damage_buffer(0, 570, 646, 3)
      [1607126.154]  -> wl_surface@23.damage_buffer(0, 573, 3, 30)
      [1607126.485]  -> wl_surface@23.frame(new id wl_callback@26)
      [1607126.555]  -> wl_surface@23.offset(0, 0)
      [1607126.575]  -> wl_surface@23.attach(wl_buffer@27, 0, 0)
      [1607126.598]  -> wl_surface@23.damage_buffer(3, 30, 640, 540)
      [1607126.631]  -> wl_surface@23.commit()
      [1607154.119]  -> wl_compositor@4.create_surface(new id wl_surface@31)
      
      Thread 1 "videowidget" received signal SIGSEGV, Segmentation fault.
      0x0000007fee38ae34 in wl_list_insert () from /usr/lib/libwayland-client.so.0
      (gdb) thread apply all bt
      
      Thread 8 (Thread 0x7fd8b9efc0 (LWP 2249) "mali-cpu-comman"):
      #0  0x0000007ff619d7b4 in ?? () from /usr/lib/libc.so.6
      #1  0x0000007ff61a9430 in ?? () from /usr/lib/libc.so.6
      #2  0x0000007fef70f580 in gles_vertexp_bb_neon_transform_and_produce_clip_bits () from /usr/lib/libmali.so.1
      Backtrace stopped: previous frame identical to this frame (corrupt stack?)
      
      Thread 7 (Thread 0x7fd93aefc0 (LWP 2248) "mali-mem-purge"):
      #0  0x0000007ff61d617c in clock_nanosleep () from /usr/lib/libc.so.6
      #1  0x0000007ff61df680 in nanosleep () from /usr/lib/libc.so.6
      #2  0x0000007ff6202d0c in usleep () from /usr/lib/libc.so.6
      #3  0x0000007fef70832c in gles_vertexp_bb_neon_transform_and_produce_clip_bits () from /usr/lib/libmali.so.1
      Backtrace stopped: previous frame identical to this frame (corrupt stack?)
      
      Thread 6 (Thread 0x7fd9bbefc0 (LWP 2247) "mali-event-hand"):
      #0  0x0000007ff61f92ac in poll () from /usr/lib/libc.so.6
      #1  0x0000007fef70be9c in gles_vertexp_bb_neon_transform_and_produce_clip_bits () from /usr/lib/libmali.so.1
      Backtrace stopped: previous frame identical to this frame (corrupt stack?)
      
      Thread 5 (Thread 0x7fda3cefc0 (LWP 2246) "QPulseAudioEngi"):
      #0  0x0000007ff61f92ac in poll () from /usr/lib/libc.so.6
      #1  0x0000007ff5da7194 in ?? () from /usr/lib/libpulse.so.0
      #2  0x0000007ff5d97f08 in pa_mainloop_poll () from /usr/lib/libpulse.so.0
      #3  0x0000007ff5d98664 in pa_mainloop_iterate () from /usr/lib/libpulse.so.0
      #4  0x0000007ff5d98738 in pa_mainloop_run () from /usr/lib/libpulse.so.0
      #5  0x0000007ff5da7278 in ?? () from /usr/lib/libpulse.so.0
      #6  0x0000007fee5ff82c in ?? () from /usr/lib/pulseaudio/libpulsecommon-17.0.so
      #7  0x0000007ff61a0fc4 in ?? () from /usr/lib/libc.so.6
      #8  0x0000007ff62031cc in ?? () from /usr/lib/libc.so.6
      
      Thread 4 (Thread 0x7feacdefc0 (LWP 2245) "WaylandEventThr"):
      #0  0x0000007ff61f92ac in poll () from /usr/lib/libc.so.6
      #1  0x0000007febe10108 in poll (__timeout=-1, __nfds=2, __fds=0x7feacde5f8) at /usr/include/bits/poll2.h:39
      #2  QtWaylandClient::EventThread::run (this=0x55555bf6c0) at /usr/src/debug/qtwayland/6.9.0/src/client/qwaylanddisplay.cpp:182
      #3  0x0000007ff68a7914 in operator() (__closure=__closure@entry=0x7feacde6e0) at /usr/src/debug/qtbase/6.9.0/src/corelib/thread/qthread_unix.cpp:335
      #4  0x0000007ff68a7a54 in (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >(struct {...} &&) (t=...) at /usr/src/debug/qtbase/6.9.0/src/corelib/thread/qthread_unix.cpp:263
      #5  0x0000007ff68a7afc in QThreadPrivate::start (arg=<optimized out>) at /usr/src/debug/qtbase/6.9.0/src/corelib/thread/qthread_unix.cpp:294
      #6  0x0000007ff61a0fc4 in ?? () from /usr/lib/libc.so.6
      #7  0x0000007ff62031cc in ?? () from /usr/lib/libc.so.6
      
      Thread 3 (Thread 0x7feb4eefc0 (LWP 2244) "WaylandEventThr"):
      #0  0x0000007ff61f92ac in poll () from /usr/lib/libc.so.6
      #1  0x0000007febe10108 in poll (__timeout=-1, __nfds=2, __fds=0x7feb4ee5f8) at /usr/include/bits/poll2.h:39
      #2  QtWaylandClient::EventThread::run (this=0x55555be850) at /usr/src/debug/qtwayland/6.9.0/src/client/qwaylanddisplay.cpp:182
      #3  0x0000007ff68a7914 in operator() (__closure=__closure@entry=0x7feb4ee6e0) at /usr/src/debug/qtbase/6.9.0/src/corelib/thread/qthread_unix.cpp:335
      #4  0x0000007ff68a7a54 in (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >(struct {...} &&) (t=...) at /usr/src/debug/qtbase/6.9.0/src/corelib/thread/qthread_unix.cpp:263
      #5  0x0000007ff68a7afc in QThreadPrivate::start (arg=<optimized out>) at /usr/src/debug/qtbase/6.9.0/src/corelib/thread/qthread_unix.cpp:294
      #6  0x0000007ff61a0fc4 in ?? () from /usr/lib/libc.so.6
      #7  0x0000007ff62031cc in ?? () from /usr/lib/libc.so.6
      
      Thread 2 (Thread 0x7febd4efc0 (LWP 2243) "QDBusConnection"):
      #0  0x0000007ff61f92ac in poll () from /usr/lib/libc.so.6
      #1  0x0000007ff5bed2c0 in ?? () from /usr/lib/libglib-2.0.so.0
      #2  0x0000007ff5bedae8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
      #3  0x0000007ff69bd668 in QEventDispatcherGlib::processEvents (this=0x7fe4000ba0, flags=...) at /usr/src/debug/qtbase/6.9.0/src/corelib/kernel/qeventdispatcher_glib.cpp:399
      #4  0x0000007ff670ddd8 in QEventLoop::processEvents (this=this@entry=0x7febd4e598, flags=flags@entry=...) at /usr/src/debug/qtbase/6.9.0/src/corelib/kernel/qeventloop.cpp:103
      #5  0x0000007ff670e698 in QEventLoop::exec (this=this@entry=0x7febd4e598, flags=flags@entry=...) at /usr/src/debug/qtbase/6.9.0/src/corelib/global/qflags.h:77
      #6  0x0000007ff6811694 in QThread::exec (this=this@entry=0x7ff5b81940 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qtbase/6.9.0/src/corelib/global/qflags.h:77
      #7  0x0000007ff5ab1888 in QDBusConnectionManager::run (this=0x7ff5b81940 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qtbase/6.9.0/src/dbus/qdbusconnectionmanager.cpp:144
      #8  0x0000007ff68a7914 in operator() (__closure=__closure@entry=0x7febd4e6e0) at /usr/src/debug/qtbase/6.9.0/src/corelib/thread/qthread_unix.cpp:335
      #9  0x0000007ff68a7a54 in (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >(struct {...} &&) (t=...) at /usr/src/debug/qtbase/6.9.0/src/corelib/thread/qthread_unix.cpp:263
      #10 0x0000007ff68a7afc in QThreadPrivate::start (arg=<optimized out>) at /usr/src/debug/qtbase/6.9.0/src/corelib/thread/qthread_unix.cpp:294
      #11 0x0000007ff61a0fc4 in ?? () from /usr/lib/libc.so.6
      #12 0x0000007ff62031cc in ?? () from /usr/lib/libc.so.6
      
      Thread 1 (Thread 0x7ff7fb4460 (LWP 2241) "videowidget"):
      #0  0x0000007fee38ae34 in wl_list_insert () from /usr/lib/libwayland-client.so.0
      #1  0x0000007fee387fc4 in wl_proxy_create_wrapper () from /usr/lib/libwayland-client.so.0
      #2  0x0000007fef59c914 in ?? () from /usr/lib/libmali.so.1
      #3  0x00000055556ef7e0 in ?? ()
      Backtrace stopped: previous frame inner to this frame (corrupt stack?)
      

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-130970
          # Subject Branch Project Status CR V

          Activity

            People

              qtmultimediateam Qt Multimedia Team
              timblechmann tim blechmann
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There is 1 open Gerrit change