Bug 350861 - KDE Info Center Crashes on Exit
Summary: KDE Info Center Crashes on Exit
Status: RESOLVED FIXED
Alias: None
Product: kinfocenter
Classification: Applications
Component: general (show other bugs)
Version: 5.3.2
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: David Hubner
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2015-08-01 16:01 UTC by ramin
Modified: 2016-05-08 13:05 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ramin 2015-08-01 16:01:02 UTC
Application: kinfocenter (5.3.2)

Qt Version: 5.4.2
Operating System: Linux 4.1.3-200.fc22.x86_64 x86_64
Distribution (Platform): Fedora RPMs

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

- Opened KDE Info Center
- Browsed the available Info
- Closed the Application
==> CRASH :-(

-- Backtrace:
Application: KDE Info Center (kinfocenter), signal: Aborted
Using host libthread_db library "/lib64/libthread_db.so.1".
81	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f5b0d4aa900 (LWP 2452))]

Thread 3 (Thread 0x7f5aee171700 (LWP 2453)):
#0  0x00007f5b05b972fd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f5b021f1182 in _xcb_conn_wait (__timeout=-1, __nfds=1, __fds=0x7f5aee170bc0) at /usr/include/bits/poll2.h:46
#2  0x00007f5b021f1182 in _xcb_conn_wait (c=c@entry=0x1a2cab0, cond=cond@entry=0x1a2caf0, vector=vector@entry=0x0, count=count@entry=0x0) at xcb_conn.c:459
#3  0x00007f5b021f2c77 in xcb_wait_for_event (c=0x1a2cab0) at xcb_in.c:648
#4  0x00007f5aefcb49b9 in QXcbEventReader::run() (this=0x1a37180) at qxcbconnection.cpp:1115
#5  0x00007f5b067a0e3e in QThreadPrivate::start(void*) (arg=0x1a37180) at thread/qthread_unix.cpp:337
#6  0x00007f5b033a7555 in start_thread (arg=0x7f5aee171700) at pthread_create.c:333
#7  0x00007f5b05ba2b9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f5ae56d1700 (LWP 2455)):
#0  0x00007f5b05b972fd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f5b0148bdbc in g_main_context_iterate (priority=2147483647, n_fds=1, fds=0x7f5ae0003070, timeout=<optimized out>, context=0x7f5ae0000990) at gmain.c:4103
#2  0x00007f5b0148bdbc in g_main_context_iterate (context=context@entry=0x7f5ae0000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3803
#3  0x00007f5b0148becc in g_main_context_iteration (context=0x7f5ae0000990, may_block=1) at gmain.c:3869
#4  0x00007f5b069d7b8b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f5ae00008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420
#5  0x00007f5b0697deba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f5ae56d0ca0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#6  0x00007f5b0679bf54 in QThread::exec() (this=this@entry=0x1b5db40) at thread/qthread.cpp:503
#7  0x00007f5b04f76955 in QQmlThreadPrivate::run() (this=0x1b5db40) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/ftw/qqmlthread.cpp:141
#8  0x00007f5b067a0e3e in QThreadPrivate::start(void*) (arg=0x1b5db40) at thread/qthread_unix.cpp:337
#9  0x00007f5b033a7555 in start_thread (arg=0x7f5ae56d1700) at pthread_create.c:333
#10 0x00007f5b05ba2b9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f5b0d4aa900 (LWP 2452)):
[KCrash Handler]
#5  0x00007f5b05ad49c8 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#6  0x00007f5b05ad665a in __GI_abort () at abort.c:89
#7  0x00007f5b0678e808 in QMessageLogger::fatal(char const*, ...) const (context=..., message=...) at global/qlogging.cpp:1422
#8  0x00007f5b0678e808 in QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7ffebf001f10, msg=msg@entry=0x7f5b077fa028 "QPixmap: Must construct a QGuiApplication before a QPixmap") at global/qlogging.cpp:643
#9  0x00007f5b07449452 in qt_pixmap_thread_test() () at image/qpixmap.cpp:68
#10 0x00007f5b074d673b in QPixmap::QPixmap() () at image/qpixmap.cpp:105
#11 0x00007f5b074d673b in QPixmap::QPixmap() (this=0x436ac78) at image/qpixmap.cpp:103
#12 0x00007f5b074777df in QCursor::QCursor(QCursor const&) (s=Qt::ArrowCursor, this=0x436ac60) at kernel/qcursor.cpp:607
#13 0x00007f5b074777df in QCursor::QCursor(QCursor const&) () at kernel/qcursor.cpp:638
#14 0x00007f5b074777df in QCursor::QCursor(QCursor const&) (this=0x7ffebf001fe0, c=...) at kernel/qcursor.cpp:550
#15 0x00007f5b05442539 in QQuickItem::cursor() const (this=this@entry=0x27687c0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickitem.cpp:6781
#16 0x00007f5b054c7deb in QQuickMouseArea::setCursorShape(Qt::CursorShape) (this=this@entry=0x27687c0, shape=Qt::IBeamCursor) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickmousearea.cpp:1225
#17 0x00007f5b0558a128 in QQuickMouseArea::qt_metacall(QMetaObject::Call, int, void**) (this=0x27687c0, _c=QMetaObject::WriteProperty, _id=11, _a=0x7ffebf002220) at .moc/moc_qquickmousearea_p.cpp:457
#18 0x00007f5b04ed9744 in QQmlVMEMetaObject::metaCall(QMetaObject::Call, int, void**) (this=0x27713b0, c=QMetaObject::WriteProperty, _id=52, a=0x7ffebf002220) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlvmemetaobject.cpp:972
#19 0x00007f5b04ef4ef5 in QQmlPropertyPrivate::writeBinding(QObject*, QQmlPropertyData const&, QQmlContextData*, QQmlJavaScriptExpression*, QV4::ValueRef, bool, QFlags<QQmlPropertyPrivate::WriteFlag>) (object=0x27687c0, core=..., context=0x276f730, expression=expression@entry=0x2771c30, result=..., isUndefined=isUndefined@entry=false, flags=...) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlproperty.cpp:1487
#20 0x00007f5b04f6640c in QQmlBinding::update(QFlags<QQmlPropertyPrivate::WriteFlag>) (this=0x2771c10, flags=...) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlbinding.cpp:223
#21 0x00007f5b04f66b6e in QQmlBinding::expressionChanged(QQmlJavaScriptExpression*) (this=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlbinding_p.h:97
#22 0x00007f5b04f66b6e in QQmlBinding::expressionChanged(QQmlJavaScriptExpression*) (e=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlbinding.cpp:285
#23 0x00007f5b04f40f57 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=0x284a458, a=a@entry=0x0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlnotifier.cpp:73
#24 0x00007f5b04ee0b7c in QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) (object=0x29221a0, index=18, a=0x0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlengine.cpp:717
#25 0x00007f5b069b0980 in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0x29221a0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=15, argv=argv@entry=0x0) at kernel/qobject.cpp:3603
#26 0x00007f5b069b1877 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x29221a0, m=m@entry=0x7f5b05873800 <QQuickItem::staticMetaObject>, local_signal_index=local_signal_index@entry=15, argv=argv@entry=0x0) at kernel/qobject.cpp:3582
#27 0x00007f5b0543c783 in QQuickItem::visibleChanged() (this=this@entry=0x29221a0) at .moc/moc_qquickitem.cpp:1060
#28 0x00007f5b0544b05e in QQuickItemPrivate::setEffectiveVisibleRecur(bool) (this=0x2922290, newEffectiveVisible=newEffectiveVisible@entry=false) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickitem.cpp:5508
#29 0x00007f5b0544af44 in QQuickItemPrivate::setEffectiveVisibleRecur(bool) (this=0x2770540, newEffectiveVisible=newEffectiveVisible@entry=false) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickitem.cpp:5499
#30 0x00007f5b0544af44 in QQuickItemPrivate::setEffectiveVisibleRecur(bool) (this=this@entry=0x276fc10, newEffectiveVisible=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickitem.cpp:5499
#31 0x00007f5b0544b0b4 in QQuickItem::setVisible(bool) (this=this@entry=0x2769c40, v=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickitem.cpp:5407
#32 0x00007f5b0544d024 in QQuickItem::qt_metacall(QMetaObject::Call, int, void**) (this=0x2769c40, _c=QMetaObject::WriteProperty, _id=11, _a=0x7ffebf002bb0) at .moc/moc_qquickitem.cpp:912
#33 0x00007f5b04ed9744 in QQmlVMEMetaObject::metaCall(QMetaObject::Call, int, void**) (this=0x276fe00, c=QMetaObject::WriteProperty, _id=12, a=0x7ffebf002bb0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlvmemetaobject.cpp:972
#34 0x00007f5b04ed9847 in QQmlVMEMetaObject::metaCall(QMetaObject::Call, int, void**) (a=0x7ffebf002bb0, _id=12, c=QMetaObject::WriteProperty, this=<optimized out>) at /usr/include/qt5/QtCore/5.4.2/QtCore/private/qobject_p.h:420
#35 0x00007f5b04ed9847 in QQmlVMEMetaObject::metaCall(QMetaObject::Call, int, void**) (this=0x2774010, c=QMetaObject::WriteProperty, _id=12, a=0x7ffebf002bb0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlvmemetaobject.cpp:970
#36 0x00007f5b04ef2ff1 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) (object=object@entry=0x2769c40, property=..., value=..., context=context@entry=0x275f960, flags=...) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlproperty.cpp:1314
#37 0x00007f5b04ef495b in QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) (object=object@entry=0x2769c40, core=..., value=..., context=context@entry=0x275f960, flags=...) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlproperty.cpp:1238
#38 0x00007f5b04ef5462 in QQmlPropertyPrivate::writeBinding(QObject*, QQmlPropertyData const&, QQmlContextData*, QQmlJavaScriptExpression*, QV4::ValueRef, bool, QFlags<QQmlPropertyPrivate::WriteFlag>) (object=0x2769c40, core=..., context=0x275f960, expression=expression@entry=0x27743b0, result=..., isUndefined=isUndefined@entry=false, flags=...) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlproperty.cpp:1571
#39 0x00007f5b04f6640c in QQmlBinding::update(QFlags<QQmlPropertyPrivate::WriteFlag>) (this=0x2774390, flags=...) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlbinding.cpp:223
#40 0x00007f5b04f66b6e in QQmlBinding::expressionChanged(QQmlJavaScriptExpression*) (this=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlbinding_p.h:97
#41 0x00007f5b04f66b6e in QQmlBinding::expressionChanged(QQmlJavaScriptExpression*) (e=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlbinding.cpp:285
#42 0x00007f5b04f40f57 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=0x2849540, a=a@entry=0x0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlnotifier.cpp:73
#43 0x00007f5b04f40f1e in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=0x2849818, a=a@entry=0x0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlnotifier.cpp:68
#44 0x00007f5b04ee0b7c in QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) (object=0x2760170, index=32, a=0x0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlengine.cpp:717
#45 0x00007f5b069b0980 in QMetaObject::activate(QObject*, int, int, void**) (sender=0x2760170, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=argv@entry=0x0) at kernel/qobject.cpp:3603
#46 0x00007f5b04ed8645 in QQmlVMEMetaObject::activate(QObject*, int, void**) (this=this@entry=0x2760390, object=<optimized out>, index=<optimized out>, args=args@entry=0x0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlvmemetaobject.cpp:1325
#47 0x00007f5b04eda31d in QQmlVMEMetaObject::metaCall(QMetaObject::Call, int, void**) (this=0x2760390, c=<optimized out>, _id=<optimized out>, a=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlvmemetaobject.cpp:841
#48 0x00007f5b04ed9847 in QQmlVMEMetaObject::metaCall(QMetaObject::Call, int, void**) (a=0x7ffebf0033e0, _id=44, c=QMetaObject::WriteProperty, this=<optimized out>) at /usr/include/qt5/QtCore/5.4.2/QtCore/private/qobject_p.h:420
#49 0x00007f5b04ed9847 in QQmlVMEMetaObject::metaCall(QMetaObject::Call, int, void**) (this=0x2776110, c=QMetaObject::WriteProperty, _id=44, a=0x7ffebf0033e0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlvmemetaobject.cpp:970
#50 0x00007f5b04ebcb8d in QV4::QObjectWrapper::setProperty(QObject*, QV4::ExecutionContext*, QQmlPropertyData*, QV4::ValueRef) (object=0x2760170, ctx=<optimized out>, property=0x7f5ae016be58, value=...) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4qobjectwrapper.cpp:498
#51 0x00007f5b04ebdb88 in QV4::QObjectWrapper::setProperty(QV4::ExecutionContext*, int, QV4::ValueRef) (this=<optimized out>, ctx=<optimized out>, propertyIndex=<optimized out>, value=...) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4qobjectwrapper.cpp:648
#52 0x00007f5b04ec8dae in QV4::Runtime::setQmlQObjectProperty(QV4::ExecutionContext*, QV4::ValueRef, int, QV4::ValueRef) (ctx=<optimized out>, object=..., propertyIndex=<optimized out>, value=...) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4runtime.cpp:1340
#53 0x00007f5aec003531 in  ()
#54 0x00007f5ae46d10d8 in  ()
#55 0x00007f5b04f69af0 in QV4::QmlContextWrapper::get(QV4::Managed*, QV4::String*, bool*) (m=<optimized out>, name=0x7f5ae46d1140, hasProperty=0x7ffebf0035a0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlcontextwrapper.cpp:257
#56 0x00007ffebf003730 in  ()
#57 0x00007f5ae46731c0 in  ()
#58 0x0000000000000000 in  ()

Possible duplicates by query: bug 350759, bug 350726, bug 350334, bug 350209, bug 350208.

Reported using DrKonqi
Comment 1 Christoph Feck 2015-08-13 00:19:01 UTC

*** This bug has been marked as a duplicate of bug 347344 ***
Comment 2 David Edmundson 2016-05-08 12:56:17 UTC
Git commit 95569a0eae884427c7f7ab11fd63ae577f0be16d by David Edmundson.
Committed on 08/05/2016 at 12:56.
Pushed by davidedmundson into branch 'Plasma/5.6'.

Keep a reference to the Solid::Device whilst using it's interface

Otherwise we were effectively relying on Solid's cache for memory
management.

This led to a problem that QML's QObject wrapper would detect the
Solid::Battery was being deleted on shutdown, and re-evaluate
currentBattery. This would then call BatteryModel.fetch(0) which being
slightly behind would then return an invalid object, as well as doing
pointless processing during application shut down.

This ensure items get deleted in the correct order.
REVIEW: 127862

M  +13   -16   Modules/energy/batterymodel.cpp
M  +2    -1    Modules/energy/batterymodel.h

http://commits.kde.org/kinfocenter/95569a0eae884427c7f7ab11fd63ae577f0be16d
Comment 3 Christoph Feck 2016-05-08 13:04:29 UTC
David, what about bug 347344 ?