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

[5.5.x] EGLFS plugin segfault on Raspberry Pi

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P3: Somewhat important
    • 5.6.0 RC
    • 5.5.0, 5.5.1
    • QPA: EGLFS
    • None
    • Raspbian Wheezy Raspberry Pi
      Linaro GCC 4.8.3

    Description

      I'm trying to deploy Qt 5.5.1 on the Raspberry Pi, but I stumbled into a crash caused by the EGLFS platform plugin.

      Unfortunately I haven't been able to reproduce the issue with the Qt examples but in my application it always happens when closing a QDialog. Either via accept() or reject().

      Here's the information I collected so far:

      • it didn't happen with Qt 5.4.2
      • it doesn't happen with the LinuxFB platform plugin
      • it doesn't happen with Qt 5.5.1 on a Linux machine (most likely the XCB platform plugin is OK too)
      • I am using the official Linaro toolchain:
        tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/arm-linux-gnueabihf/bin/gcc -v
        Using built-in specs.
        COLLECT_GCC=tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/arm-linux-gnueabihf/bin/gcc
        Target: arm-linux-gnueabihf
        Configured with: /home/zhehe01/work/bzr/pi-build/builds/arm-linux-gnueabihf-raspbian-linux/.build/src/gcc-linaro-4.8-2014.03/configure --build=x86_64-build_unknown-linux-gnu --host=x86_64-build_unknown-linux-gnu --target=arm-linux-gnueabihf --prefix=/home/zhehe01/work/bzr/pi-build/builds/arm-linux-gnueabihf-raspbian-linux/install --with-sysroot=/home/zhehe01/work/bzr/pi-build/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-languages=c,c++,fortran --disable-multilib --enable-multiarch --with-arch=armv6 --with-tune=arm1176jz-s --with-fpu=vfp --with-float=hard --with-pkgversion='crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03' --with-bugurl=https://bugs.launchpad.net/gcc-linaro --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/home/zhehe01/work/bzr/pi-build/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpfr=/home/zhehe01/work/bzr/pi-build/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-mpc=/home/zhehe01/work/bzr/pi-build/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-isl=/home/zhehe01/work/bzr/pi-build/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-cloog=/home/zhehe01/work/bzr/pi-build/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --with-libelf=/home/zhehe01/work/bzr/pi-build/builds/arm-linux-gnueabihf-raspbian-linux/.build/arm-linux-gnueabihf/build/static --enable-threads=posix --disable-libstdcxx-pch --enable-linker-build-id --enable-plugin --enable-gold --with-local-prefix=/home/zhehe01/work/bzr/pi-build/builds/arm-linux-gnueabihf-raspbian-linux/install/arm-linux-gnueabihf/libc --enable-c99 --enable-long-long --with-float=hard
        Thread model: posix
        gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03)
        
      • this is the backtrace produced by GDB on a core dumped with 5.5.1 built in debug mode:
        Program terminated with signal 11, Segmentation fault.
        #0  0x75356b54 in QtSharedPointer::ExternalRefCountData::getAndRef(QObject const*) () at tools/qsharedpointer.cpp:1328
        1328    tools/qsharedpointer.cpp: No such file or directory.
        (gdb) backtrace
        #0  0x75356b54 in QtSharedPointer::ExternalRefCountData::getAndRef(QObject const*) () at tools/qsharedpointer.cpp:1328
        #1  0x75cc5eb4 in QWeakPointer<QObject>::QWeakPointer<QWindow>(QWindow*, bool) ()
            at ../../include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h:696
        #2  0x75cc51b8 in QPointer<QWindow>::QPointer(QWindow*) () at ../../include/QtCore/../../src/corelib/kernel/qpointer.h:62
        #3  0x75cc3648 in QWindowSystemInterfacePrivate::LeaveEvent::LeaveEvent(QWindow*) () at kernel/qwindowsysteminterface_p.h:144
        #4  0x75cc0048 in QWindowSystemInterface::handleLeaveEvent(QWindow*) () at kernel/qwindowsysteminterface.cpp:83
        #5  0x75cc00ac in QWindowSystemInterface::handleEnterLeaveEvent(QWindow*, QWindow*, QPointF const&, QPointF const&) ()
            at kernel/qwindowsysteminterface.cpp:99
        #6  0x7443e7a0 in QEGLPlatformScreen::handleCursorMove(QPoint const&) () at eglconvenience/qeglplatformscreen.cpp:95
        #7  0x7443bae4 in QEGLPlatformCursor::pointerEvent(QMouseEvent const&) () at eglconvenience/qeglplatformcursor.cpp:315
        #8  0x75ce0f08 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
            at kernel/qguiapplication.cpp:1775
        #9  0x75ce0540 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
            at kernel/qguiapplication.cpp:1581
        #10 0x75cc1dc0 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
            at kernel/qwindowsysteminterface.cpp:625
        #11 0x744410dc in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at eventdispatchers/qeventdispatcher_glib.cpp:70
        #12 0x7495a40c in g_main_context_dispatch () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
        #13 0x7495a634 in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
        #14 0x7495a634 in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0
        Backtrace stopped: previous frame identical to this frame (corrupt stack?)
        

      I still haven't had a look at the code, but my question is: is it safe to try the eglfs from the 5.6 branch and try it on 5.5.1 ?
      Are they binary compatible ?

      Next thing I can do is to build Qt 5.6.0 and give it a try.
      In the meantime, any advise is much appreciated.
      Thanks

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            lagocs Laszlo Agocs
            mcallegari79 Massimo Callegari
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes