Bug 374153 - systemsettings5 crash while configuring window titlebar buttons
Summary: systemsettings5 crash while configuring window titlebar buttons
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (other bugs)
Version First Reported In: 5.8.2
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2016-12-25 20:09 UTC by Evstifeev Roman
Modified: 2017-04-12 17:17 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In: 5.8.7
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Evstifeev Roman 2016-12-25 20:09:03 UTC
Application: systemsettings5 (5.8.2)

Qt Version: 5.6.1
Frameworks Version: 5.26.0
Operating System: Linux 4.6.2-4.g14295d6-default x86_64
Distribution: "openSUSE Leap 42.2"

-- Information about the crash:
- What I was doing when the application crashed:

Go to the "application style" -> "window decorations" -> "buttons"
Drag avaliable button handlers quickly to and from titlebar. Sometimes it crashes.

The crash can be reproduced sometimes.

-- Backtrace:
Application: System Settings (systemsettings5), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f7948c80780 (LWP 1918))]

Thread 6 (Thread 0x7f790ffff700 (LWP 4854)):
#0  0x00007f79449c849d in poll () at /lib64/libc.so.6
#1  0x00007f79405df314 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f79405df42c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f79452cf32b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f79080008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:419
#4  0x00007f794527cfdb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f790fffee30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#5  0x00007f79450b7f1a in QThread::exec() (this=this@entry=0x1d18670) at thread/qthread.cpp:500
#6  0x00007f79434269b8 in QQmlThreadPrivate::run() (this=0x1d18670) at /usr/src/debug/qtdeclarative-opensource-src-5.6.1/src/qml/qml/ftw/qqmlthread.cpp:141
#7  0x00007f79450bc9e9 in QThreadPrivate::start(void*) (arg=0x1d18670) at thread/qthread_unix.cpp:341
#8  0x00007f7940afc734 in start_thread () at /lib64/libpthread.so.0
#9  0x00007f79449d0d3d in clone () at /lib64/libc.so.6

Thread 5 (Thread 0x7f791808d700 (LWP 4852)):
#0  0x00007f79406207d0 in g_mutex_unlock () at /usr/lib64/libglib-2.0.so.0
#1  0x00007f79405df223 in  () at /usr/lib64/libglib-2.0.so.0
#2  0x00007f79405df42c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#3  0x00007f79452cf32b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f79100008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:419
#4  0x00007f794527cfdb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f791808ce30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#5  0x00007f79450b7f1a in QThread::exec() (this=this@entry=0x194cd00) at thread/qthread.cpp:500
#6  0x00007f79434269b8 in QQmlThreadPrivate::run() (this=0x194cd00) at /usr/src/debug/qtdeclarative-opensource-src-5.6.1/src/qml/qml/ftw/qqmlthread.cpp:141
#7  0x00007f79450bc9e9 in QThreadPrivate::start(void*) (arg=0x194cd00) at thread/qthread_unix.cpp:341
#8  0x00007f7940afc734 in start_thread () at /lib64/libpthread.so.0
#9  0x00007f79449d0d3d in clone () at /lib64/libc.so.6

Thread 4 (Thread 0x7f791bbc3700 (LWP 1944)):
#0  0x00007f7940b010af in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0
#1  0x00007f7922f25533 in  () at /usr/lib64/dri/r600_dri.so
#2  0x00007f7922f24d57 in  () at /usr/lib64/dri/r600_dri.so
#3  0x00007f7940afc734 in start_thread () at /lib64/libpthread.so.0
#4  0x00007f79449d0d3d in clone () at /lib64/libc.so.6

Thread 3 (Thread 0x7f792ceed700 (LWP 1938)):
#0  0x00007ffea71f6989 in  ()
#1  0x00007ffea71f6c8f in clock_gettime ()
#2  0x00007f79449dd806 in clock_gettime () at /lib64/libc.so.6
#3  0x00007f7945167826 in qt_gettime() (ts=0x7f792ceecbb0, clock=<optimized out>) at tools/qelapsedtimer_unix.cpp:105
#4  0x00007f7945167826 in qt_gettime() (frac=<synthetic pointer>, sec=<synthetic pointer>) at tools/qelapsedtimer_unix.cpp:156
#5  0x00007f7945167826 in qt_gettime() () at tools/qelapsedtimer_unix.cpp:165
#6  0x00007f79452cd989 in QTimerInfoList::updateCurrentTime() (this=this@entry=0x7f7928002ed0) at kernel/qtimerinfo_unix.cpp:84
#7  0x00007f79452cdf05 in QTimerInfoList::timerWait(timespec&) (this=0x7f7928002ed0, tm=...) at kernel/qtimerinfo_unix.cpp:381
#8  0x00007f79452cf0fe in timerSourcePrepare(GSource*, gint*) (timeout=0x7f792ceecc64, src=<optimized out>) at kernel/qeventdispatcher_glib.cpp:126
#9  0x00007f79452cf0fe in timerSourcePrepare(GSource*, gint*) (source=<optimized out>, timeout=0x7f792ceecc64) at kernel/qeventdispatcher_glib.cpp:159
#10 0x00007f79405de95d in g_main_context_prepare () at /usr/lib64/libglib-2.0.so.0
#11 0x00007f79405df230 in  () at /usr/lib64/libglib-2.0.so.0
#12 0x00007f79405df42c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#13 0x00007f79452cf32b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f79280008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:419
#14 0x00007f794527cfdb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f792ceece20, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#15 0x00007f79450b7f1a in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:500
#16 0x00007f7945bd21d5 in  () at /usr/lib64/libQt5DBus.so.5
#17 0x00007f79450bc9e9 in QThreadPrivate::start(void*) (arg=0x7f7945e3ace0) at thread/qthread_unix.cpp:341
#18 0x00007f7940afc734 in start_thread () at /lib64/libpthread.so.0
#19 0x00007f79449d0d3d in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f7936273700 (LWP 1935)):
#0  0x00007f79449c849d in poll () at /lib64/libc.so.6
#1  0x00007f79413723e2 in  () at /usr/lib64/libxcb.so.1
#2  0x00007f7941373fcf in xcb_wait_for_event () at /usr/lib64/libxcb.so.1
#3  0x00007f79387cd839 in  () at /usr/lib64/libQt5XcbQpa.so.5
#4  0x00007f79450bc9e9 in QThreadPrivate::start(void*) (arg=0x146c8c0) at thread/qthread_unix.cpp:341
#5  0x00007f7940afc734 in start_thread () at /lib64/libpthread.so.0
#6  0x00007f79449d0d3d in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f7948c80780 (LWP 1918)):
[KCrash Handler]
#6  0x00007f79452311b3 in QStack<QVector<QPersistentModelIndexData*> >::pop() (__m=std::memory_order_relaxed, this=0x18) at /usr/include/c++/4.8/bits/atomic_base.h:496
#7  0x00007f79452311b3 in QStack<QVector<QPersistentModelIndexData*> >::pop() (_q_value=...) at ../../src/corelib/arch/qatomic_cxx11.h:96
#8  0x00007f79452311b3 in QStack<QVector<QPersistentModelIndexData*> >::pop() (this=0x18) at ../../src/corelib/thread/qbasicatomic.h:116
#9  0x00007f79452311b3 in QStack<QVector<QPersistentModelIndexData*> >::pop() (this=0x18) at ../../src/corelib/tools/qrefcount.h:49
#10 0x00007f79452311b3 in QStack<QVector<QPersistentModelIndexData*> >::pop() (v=..., this=0x7ffea71c9860) at ../../src/corelib/tools/qvector.h:357
#11 0x00007f79452311b3 in QStack<QVector<QPersistentModelIndexData*> >::pop() (this=this@entry=0x194a830) at ../../src/corelib/tools/qstack.h:56
#12 0x00007f794522b580 in QAbstractItemModelPrivate::itemsMoved(QModelIndex const&, int, int, QModelIndex const&, int, Qt::Orientation) (this=this@entry=0x194a7b0, sourceParent=..., sourceFirst=sourceFirst@entry=0, sourceLast=sourceLast@entry=0, destinationParent=..., destinationChild=destinationChild@entry=2, orientation=orientation@entry=Qt::Vertical) at itemmodels/qabstractitemmodel.cpp:715
#13 0x00007f794522de36 in QAbstractItemModel::endMoveRows() (this=this@entry=0x194a750) at itemmodels/qabstractitemmodel.cpp:2856
#14 0x00007f791877fbef in KDecoration2::Preview::ButtonsModel::move(int, int) (this=0x194a750, sourceIndex=<optimized out>, targetIndex=<optimized out>) at /usr/src/debug/kwin-5.8.3/kcmkwin/kwindecoration/declarative-plugin/buttonsmodel.cpp:167
#15 0x00007f79187808b3 in KDecoration2::Preview::ButtonsModel::qt_metacall(QMetaObject::Call, int, void**) (_a=0x7ffea71c9b50, _id=3, _c=QMetaObject::InvokeMetaMethod, _o=0x194a750) at /usr/src/debug/kwin-5.8.3/build/kcmkwin/kwindecoration/moc_buttonsmodel.cpp:122
#16 0x00007f79187808b3 in KDecoration2::Preview::ButtonsModel::qt_metacall(QMetaObject::Call, int, void**) (this=0x194a750, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7ffea71c9b50) at /usr/src/debug/kwin-5.8.3/build/kcmkwin/kwindecoration/moc_buttonsmodel.cpp:123
#17 0x00007f79433e2a19 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const (this=this@entry=0x7ffea71c9ee0, type=type@entry=QMetaObject::InvokeMetaMethod, index=index@entry=58, argv=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.6.1/src/qml/qml/qqmlpropertycache.cpp:1557
#18 0x00007f794336d41c in CallMethod(QQmlObjectOrGadget const&, int, int, int, int*, QV4::ExecutionEngine*, QV4::CallData*) (object=..., index=<optimized out>, returnType=returnType@entry=43, argCount=<optimized out>, argTypes=<optimized out>, engine=engine@entry=0x1b11d20, callArgs=callArgs@entry=0x7f791708e490) at /usr/src/debug/qtdeclarative-opensource-src-5.6.1/src/qml/jsruntime/qv4qobjectwrapper.cpp:1124
#19 0x00007f794336e6bc in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*) (object=..., data=..., engine=engine@entry=0x1b11d20, callArgs=callArgs@entry=0x7f791708e490) at /usr/src/debug/qtdeclarative-opensource-src-5.6.1/src/qml/jsruntime/qv4qobjectwrapper.cpp:1375
#20 0x00007f794336f00f in QV4::QObjectMethod::callInternal(QV4::CallData*) const (this=<optimized out>, callData=0x7f791708e490) at /usr/src/debug/qtdeclarative-opensource-src-5.6.1/src/qml/jsruntime/qv4qobjectwrapper.cpp:1857
#21 0x00007f79433843d2 in QV4::Runtime::callProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (d=0x7f791708e490, this=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.6.1/src/qml/jsruntime/qv4object_p.h:324
#22 0x00007f79433843d2 in QV4::Runtime::callProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (engine=0x1b11d20, nameIndex=<optimized out>, callData=0x7f791708e490) at /usr/src/debug/qtdeclarative-opensource-src-5.6.1/src/qml/jsruntime/qv4runtime.cpp:998
#23 0x00007f792c24b363 in  ()
#24 0x00007f791708e3f0 in  ()
#25 0x00007f792c249f7f in  ()
#26 0x000000000000001e in  ()
#27 0x00007ffea71ca390 in  ()
#28 0x0000000000000000 in  ()

Possible duplicates by query: bug 374150, bug 374131, bug 374115, bug 374042, bug 373945.

Reported using DrKonqi
Comment 1 Evstifeev Roman 2016-12-25 20:14:02 UTC
This is a duplicate of https://bugs.kde.org/show_bug.cgi?id=373194
Comment 2 Martin Flöser 2017-03-24 16:05:24 UTC
Git commit c947e0a6012c551f559e45892ac70af58c023b55 by Martin Gräßlin, on behalf of Vladyslav Tronko.
Committed on 24/03/2017 at 16:04.
Pushed by graesslin into branch 'Plasma/5.8'.

Fix crash on dragging titlebar buttons in System Settings

Summary:
Currently, if user tries to move one of buttons to the left, ending up
dragging one button onto another, crash occurs.

In addition, this patch replaces verbose replacement(remove/insert) with
more elegant QVector<T>::move(int, int)
FIXED-IN: 5.8.7

Reviewers: graesslin, #kwin

Reviewed By: graesslin, #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5117

M  +12   -2    kcmkwin/kwindecoration/declarative-plugin/buttonsmodel.cpp

https://commits.kde.org/kwin/c947e0a6012c551f559e45892ac70af58c023b55
Comment 3 David Edmundson 2017-04-12 17:17:20 UTC
Git commit 1bfe1164f41dc328d54f7dc6ed13b2fabfde09f6 by David Edmundson, on behalf of Vladyslav Tronko.
Committed on 12/04/2017 at 17:16.
Pushed by davidedmundson into branch 'Plasma/5.8'.

Fix crash on dragging titlebar buttons in System Settings

Summary:
Currently, if user tries to move one of buttons to the left, ending up
dragging one button onto another, crash occurs.

In addition, this patch replaces verbose replacement(remove/insert) with
more elegant QVector<T>::move(int, int)
FIXED-IN: 5.8.7

Reviewers: graesslin, #kwin

Reviewed By: graesslin, #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5117

M  +12   -2    kcmkwin/kwindecoration/declarative-plugin/buttonsmodel.cpp

https://commits.kde.org/kwin/1bfe1164f41dc328d54f7dc6ed13b2fabfde09f6