Summary: | Gwenview Crashes on Wayland when opening Picture from overview with OpenGL renderer | ||
---|---|---|---|
Product: | [Applications] gwenview | Reporter: | pyro4hell |
Component: | general | Assignee: | Gwenview Bugs <gwenview-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | bugseforuns, jayki, meven29, miku84, tian.tian098 |
Priority: | NOR | Keywords: | drkonqi, wayland-only |
Version: | 20.12.1 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/graphics/gwenview/commit/7ed543b53a9fb6d11ef95e439425ed71f952e66b | Version Fixed In: | 20.12.3 |
Sentry Crash Report: |
Description
pyro4hell
2019-07-21 20:46:52 UTC
Is opengl rendering enabled in gwenview settings? I can reproduce the crash on my system when opengl rendering is enabled, and here is the backtrace: Application: Gwenview (gwenview), signal: Aborted Using host libthread_db library "/usr/lib/libthread_db.so.1". [Current thread is 1 (Thread 0x7f65c3bf2e80 (LWP 11863))] Thread 4 (Thread 0x7f65b2f3a700 (LWP 11866)): #0 0x00007f65c84e577c in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f65c9e7c50c in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x55e0cb8c6f10, deadline=...) at thread/qwaitcondition_unix.cpp:136 #2 0x00007f65c9e7c50c in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55e0cb8c6f10) at thread/qwaitcondition_unix.cpp:144 #3 0x00007f65c9e7c50c in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55e0cb855db0, deadline=...) at thread/qwaitcondition_unix.cpp:225 #4 0x00007f65c9e7c659 in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x55e0cb8c6e00, mutex=mutex@entry=0x55e0cb855db0, time=<optimized out>) at thread/qwaitcondition_unix.cpp:209 #5 0x00007f65c9e79b0b in QThreadPoolThread::run() (this=0x55e0cb8c6df0) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:240 #6 0x00007f65c9e76520 in QThreadPrivate::start(void*) (arg=0x55e0cb8c6df0) at thread/qthread_unix.cpp:360 #7 0x00007f65c84df57f in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007f65c9b030e3 in clone () at /usr/lib/libc.so.6 Thread 3 (Thread 0x7f65ba00e700 (LWP 11865)): #0 0x00007f65c84e5415 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007f65ba343ebc in () at /usr/lib/dri/i965_dri.so #2 0x00007f65ba343ab8 in () at /usr/lib/dri/i965_dri.so #3 0x00007f65c84df57f in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007f65c9b030e3 in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7f65c279f700 (LWP 11864)): #0 0x00007f65c9af8667 in poll () at /usr/lib/libc.so.6 #1 0x00007f65c5f88a80 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007f65c5f88b51 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007f65ca09b9bc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f65bc000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007f65ca0425ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f65c279ecb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140 #5 0x00007f65c9e752f5 in QThread::exec() (this=this@entry=0x7f65c97c3080 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120 #6 0x00007f65c973fb37 in QDBusConnectionManager::run() (this=0x7f65c97c3080 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178 #7 0x00007f65c9e76520 in QThreadPrivate::start(void*) (arg=0x7f65c97c3080 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:360 #8 0x00007f65c84df57f in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007f65c9b030e3 in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7f65c3bf2e80 (LWP 11863)): [KCrash Handler] #6 0x00007f65c9a41755 in raise () at /usr/lib/libc.so.6 #7 0x00007f65c9a2c851 in abort () at /usr/lib/libc.so.6 #8 0x00007f65cbc2cf80 in () at /usr/lib/libwayland-client.so.0 #9 0x00007f65cbc28cc0 in wl_proxy_marshal_array_constructor_versioned () at /usr/lib/libwayland-client.so.0 #10 0x00007f65cbc28efc in wl_proxy_marshal_constructor () at /usr/lib/libwayland-client.so.0 #11 0x00007f65c37d7d08 in QtWaylandClient::QWaylandDisplay::createSubSurface(QtWaylandClient::QWaylandWindow*, QtWaylandClient::QWaylandWindow*) () at /usr/lib/libQt5WaylandClient.so.5 #12 0x00007f65c37e45df in QtWaylandClient::QWaylandWindow::initWindow() () at /usr/lib/libQt5WaylandClient.so.5 #13 0x00007f65c37e4c4f in QtWaylandClient::QWaylandWindow::setVisible(bool) () at /usr/lib/libQt5WaylandClient.so.5 #14 0x00007f65bb112af5 in () at /usr/lib/qt/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so #15 0x00007f65ca60beec in QWindowPrivate::setVisible(bool) (this=0x55e0cb8cbd90, visible=visible@entry=true) at kernel/qwindow.cpp:402 #16 0x00007f65cac7d8ae in QWidgetWindow::setNativeWindowVisibility(bool) (this=this@entry=0x55e0cb8cbd30, visible=visible@entry=true) at kernel/qwidgetwindow.cpp:205 #17 0x00007f65cac5603a in QWidgetPrivate::show_sys() (this=this@entry=0x55e0cb815620) at kernel/qwidget.cpp:8158 #18 0x00007f65cac5f501 in QWidgetPrivate::show_helper() (this=0x55e0cb815620) at kernel/qwidget.cpp:8081 #19 0x00007f65cac5f325 in QWidgetPrivate::show_recursive() (this=<optimized out>) at kernel/qwidget.cpp:7950 #20 0x00007f65cac5f45c in QWidgetPrivate::showChildren(bool) (this=this@entry=0x55e0cb2ec310, spontaneous=spontaneous@entry=false) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:131 #21 0x00007f65cac5f4d2 in QWidgetPrivate::show_helper() (this=this@entry=0x55e0cb2ec310) at kernel/qwidget.cpp:8026 #22 0x00007f65cac627a5 in QWidgetPrivate::setVisible(bool) (this=0x55e0cb2ec310, visible=<optimized out>) at kernel/qwidget.cpp:8383 #23 0x00007f65cac45cfc in QStackedLayout::setCurrentIndex(int) (this=0x55e0cb02fb30, index=1) at kernel/qstackedlayout.cpp:321 #24 0x00007f65cac45fca in QStackedLayout::setCurrentWidget(QWidget*) (this=0x55e0cb02fb30, widget=widget@entry=0x55e0cb17ebf0) at kernel/qstackedlayout.cpp:376 #25 0x00007f65cadd8fb6 in QStackedWidget::setCurrentWidget(QWidget*) (this=<optimized out>, widget=0x55e0cb17ebf0) at widgets/qstackedwidget.cpp:248 #26 0x000055e0ca40c104 in () #27 0x00007f65ca06fb70 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc46857880, r=0x55e0caf729e0, this=0x55e0cb79ebd0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394 #28 0x00007f65ca06fb70 in QMetaObject::activate(QObject*, int, int, void**) (sender=0x55e0cb79ec50, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3787 #29 0x00007f65cac1c780 in QActionGroup::triggered(QAction*) (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qactiongroup.cpp:247 #30 0x00007f65cac1c96b in QActionGroupPrivate::_q_actionTriggered() (this=<optimized out>) at kernel/qactiongroup.cpp:91 #31 0x00007f65cac1d278 in QActionGroup::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ../../include/QtWidgets/../../src/widgets/kernel/qactiongroup.h:56 #32 0x00007f65ca06fa11 in QMetaObject::activate(QObject*, int, int, void**) (sender=0x55e0cb79e6a0, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3807 #33 0x00007f65cac18e93 in QAction::triggered(bool) (this=this@entry=0x55e0cb79e6a0, _t1=<optimized out>) at .moc/moc_qaction.cpp:381 #34 0x00007f65cac1b624 in QAction::activate(QAction::ActionEvent) (this=0x55e0cb79e6a0, event=<optimized out>) at kernel/qaction.cpp:1166 #35 0x000055e0ca407f4b in () #36 0x00007f65ca06fb70 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc46857b80, r=0x55e0caf729e0, this=0x55e0cb267d00) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394 #37 0x00007f65ca06fb70 in QMetaObject::activate(QObject*, int, int, void**) (sender=0x55e0cb078be0, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3787 #38 0x00007f65cb9e4af3 in Gwenview::ThumbnailView::indexActivated(QModelIndex const&) () at /usr/lib/libgwenviewlib.so.5 #39 0x00007f65ca06fb70 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc46857ca0, r=0x55e0cb078be0, this=0x55e0cb088cf0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394 #40 0x00007f65ca06fb70 in QMetaObject::activate(QObject*, int, int, void**) (sender=0x55e0cb078be0, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3787 #41 0x00007f65cae8c746 in QAbstractItemView::activated(QModelIndex const&) (this=this@entry=0x55e0cb078be0, _t1=...) at .moc/moc_qabstractitemview.cpp:668 #42 0x00007f65cae9b063 in QAbstractItemView::mouseDoubleClickEvent(QMouseEvent*) (this=0x55e0cb078be0, event=0x7ffc46858450) at itemviews/qabstractitemview.cpp:1967 #43 0x00007f65cac62d5b in QWidget::event(QEvent*) (this=this@entry=0x55e0cb078be0, event=event@entry=0x7ffc46858450) at kernel/qwidget.cpp:8948 #44 0x00007f65cad13b1f in QFrame::event(QEvent*) (this=0x55e0cb078be0, e=0x7ffc46858450) at widgets/qframe.cpp:550 #45 0x00007f65cae9aa40 in QAbstractItemView::viewportEvent(QEvent*) (this=0x55e0cb078be0, event=0x7ffc46858450) at itemviews/qabstractitemview.cpp:1753 #46 0x00007f65ca0436d3 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (event=<optimized out>, receiver=<optimized out>) at kernel/qcoreapplication.cpp:1191 #47 0x00007f65ca0436d3 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (receiver=receiver@entry=0x55e0cb078c20, event=event@entry=0x7ffc46858450) at kernel/qcoreapplication.cpp:1180 #48 0x00007f65cac1f4c4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55e0caf01ee0, receiver=receiver@entry=0x55e0cb078c20, e=e@entry=0x7ffc46858450) at kernel/qapplication.cpp:3734 #49 0x00007f65cac28c6c in QApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x55e0cb078c20, e=0x7ffc46858450) at kernel/qapplication.cpp:3200 #50 0x00007f65ca0439c2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55e0cb078c20, event=0x7ffc46858450) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:142 #51 0x00007f65cac27d4b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (receiver=receiver@entry=0x55e0cb078c20, event=event@entry=0x7ffc46858450, alienWidget=alienWidget@entry=0x55e0cb078c20, nativeWidget=0x55e0caf729e0, buttonDown=buttonDown@entry=0x7f65cb15c330 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2686 #52 0x00007f65cac7f211 in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=0x55e0cb8c7e10, event=0x7ffc46858940) at /usr/include/c++/9.1.0/bits/atomic_base.h:413 #53 0x00007f65cac82154 in QWidgetWindow::event(QEvent*) (event=0x7ffc46858940, this=0x55e0cb8c7e10) at kernel/qwidgetwindow.cpp:281 #54 0x00007f65cac82154 in QWidgetWindow::event(QEvent*) (this=0x55e0cb8c7e10, event=0x7ffc46858940) at kernel/qwidgetwindow.cpp:224 #55 0x00007f65cac1f4d5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55e0caf01ee0, receiver=receiver@entry=0x55e0cb8c7e10, e=e@entry=0x7ffc46858940) at kernel/qapplication.cpp:3740 #56 0x00007f65cac28a21 in QApplication::notify(QObject*, QEvent*) (this=0x7ffc46858d80, receiver=0x55e0cb8c7e10, e=0x7ffc46858940) at kernel/qapplication.cpp:3486 #57 0x00007f65ca0439c2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55e0cb8c7e10, event=0x7ffc46858940) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:142 #58 0x00007f65ca6006d6 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=e@entry=0x55e0cb81fb20) at kernel/qguiapplication.cpp:2155 #59 0x00007f65ca60205b in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x55e0cb81fb20) at kernel/qguiapplication.cpp:1846 #60 0x00007f65ca5da37c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=...) at kernel/qwindowsysteminterface.cpp:1148 #61 0x00007f65c3839821 in () at /usr/lib/libQt5WaylandClient.so.5 #62 0x00007f65c5f86cf4 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #63 0x00007f65c5f88b11 in () at /usr/lib/libglib-2.0.so.0 #64 0x00007f65c5f88b51 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #65 0x00007f65ca09b9a3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55e0caf81fe0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #66 0x00007f65ca0425ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc46858c80, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140 #67 0x00007f65ca04a326 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:120 #68 0x000055e0ca3db8fd in () #69 0x00007f65c9a2dee3 in __libc_start_main () at /usr/lib/libc.so.6 #70 0x000055e0ca3dbefe in _start () [Inferior 1 (process 11863) detached] yes OpenGL is enabled and switching to the software renderer works around the bug *** Bug 412809 has been marked as a duplicate of this bug. *** https://bugreports.qt.io/browse/QTBUG-79674 was merged and probably may partially fix this. It will be part of Qt 5.12.6, 5.13.3, 5.14RC1 This bug persists after update to Qt 5.14 RC1. Operating System: Arch Linux KDE Plasma Version: 5.17.4 KDE Frameworks Version: 5.64.0 Qt Version: 5.14.0 RC1 I can confirm this bug still exists. Gwenview is not crashing anymore but only renders transparent where Picture should be... Setting it to Software workaround this. Operating System: Arch Linux KDE Plasma Version: 5.20.90 KDE Frameworks Version: 5.78.0 Qt Version: 5.15.2 Kernel Version: 5.10.10-arch1-1 OS Type: 64-bit Processors: 16 × AMD Ryzen 7 2700X Eight-Core Processor Memory: 15.5 GiB of RAM Graphics Processor: Radeon RX 580 Series A possibly relevant merge request was started @ https://invent.kde.org/graphics/gwenview/-/merge_requests/37 Git commit 7ed543b53a9fb6d11ef95e439425ed71f952e66b by Nate Graham, on behalf of Madhav Kanbur. Committed on 05/02/2021 at 20:55. Pushed by ngraham into branch 'release/20.12'. Switch from QGLWidget to QOpenGLWidget * QGLWidget has been deprecated => Nuke it and don't link Qt5::OpenGL * Switch to the better, newer QOpenGLWidget (introduced in Qt 5.4) * Fixes the OpenGL Renderer not working Related: bug 403323, bug 420672 FIXED-IN: 20.12.3 Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com> M +1 -1 CMakeLists.txt M +0 -1 lib/CMakeLists.txt M +5 -10 lib/documentview/documentviewcontainer.cpp https://invent.kde.org/graphics/gwenview/commit/7ed543b53a9fb6d11ef95e439425ed71f952e66b |