attica_kde.so closing crash

Jeremy Whiting jpwhiting at kde.org
Sun Nov 16 20:50:03 GMT 2014


Hey all,

I recently fixed attica's plugin loading so it now finds and loads the
attica_kde.so plugin but when applications using knewstuff (and thus
attica) close it's giving a segfault when the PlatformDependent object is
destructed. I've not done much at all with plugins in the past, but I've
never seen a backtrace like this and thought someone else on this list must
have and would know how to fix it or what's going wrong.

To test I'm running khotnewstuff (from knewstuff tests folder) and on
closing the dialog I'm getting this backtrace from the segfault.

 Program received signal SIGSEGV, Segmentation fault.
0x00007ffff720057e in
QExplicitlySharedDataPointer<QNetworkConfigurationPrivate>::~QExplicitlySharedDataPointer
(this=0xa13810, __in_chrg=<optimized out>)
   at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qshareddata.h:156

156         inline ~QExplicitlySharedDataPointer() { if (d &&
!d->ref.deref()) delete d; }
(gdb) bt
#0  0x00007ffff720057e in
QExplicitlySharedDataPointer<QNetworkConfigurationPrivate>::~QExplicitlySharedDataPointer
(this=0xa13810, __in_chrg=<optimized out>)
   at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qshareddata.h:156

#1  0x00007ffff71ff978 in QNetworkConfiguration::~QNetworkConfiguration
(this=0xa13810, __in_chrg=<optimized out>)
   at
/home/jeremy/devel/kde/src/qt5/qtbase/src/network/bearer/qnetworkconfiguration.cpp:304

#2  0x00007ffff71bd9e1 in
QNetworkAccessManagerPrivate::~QNetworkAccessManagerPrivate (this=0xa13740,
__in_chrg=<optimized out>)
   at
/home/jeremy/devel/kde/src/qt5/qtbase/src/network/access/qnetworkaccessmanager.cpp:1488

#3  0x00007ffff71bda6c in
QNetworkAccessManagerPrivate::~QNetworkAccessManagerPrivate (this=0xa13740,
__in_chrg=<optimized out>)
   at
/home/jeremy/devel/kde/src/qt5/qtbase/src/network/access/qnetworkaccessmanager.cpp:1499

#4  0x00007ffff4e63c70 in QScopedPointerDeleter<QObjectData>::cleanup
(pointer=0xa13740) at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qscopedpointer.h:54

#5  0x00007ffff4e6225b in QScopedPointer<QObjectData,
QScopedPointerDeleter<QObjectData> >::~QScopedPointer (this=0xa13008,
__in_chrg=<optimized out>)
   at
../../include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qscopedpointer.h:101

#6  0x00007ffff4e577db in QObject::~QObject (this=0xa13000,
__in_chrg=<optimized out>) at
/home/jeremy/devel/kde/src/qt5/qtbase/src/corelib/kernel/qobject.cpp:882
#7  0x00007ffff71bae03 in QNetworkAccessManager::~QNetworkAccessManager
(this=0xa13000, __in_chrg=<optimized out>)
   at
/home/jeremy/devel/kde/src/qt5/qtbase/src/network/access/qnetworkaccessmanager.cpp:466

#8  0x00007ffff38e4ba5 in KIO::AccessManager::~AccessManager
(this=0xa13000, __in_chrg=<optimized out>) at
/home/jeremy/devel/kde/src/frameworks/kio/src/widgets/accessmanager.cpp:121
#9  0x00007ffff38e4bd4 in KIO::AccessManager::~AccessManager
(this=0xa13000, __in_chrg=<optimized out>) at
/home/jeremy/devel/kde/src/frameworks/kio/src/widgets/accessmanager.cpp:126
#10 0x00007ffff4e59150 in QObjectPrivate::deleteChildren (this=0xa12a10) at
/home/jeremy/devel/kde/src/qt5/qtbase/src/corelib/kernel/qobject.cpp:1950
#11 0x00007ffff4e57768 in QObject::~QObject (this=0xa0eff0,
__in_chrg=<optimized out>) at
/home/jeremy/devel/kde/src/qt5/qtbase/src/corelib/kernel/qobject.cpp:1030
#12 0x00007fffd95e77ce in
Attica::KdePlatformDependent::~KdePlatformDependent (this=0xa0eff0,
__in_chrg=<optimized out>)
   at
/home/jeremy/devel/kde/src/kde/workspace/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:58

#13 0x00007fffd95e7806 in
Attica::KdePlatformDependent::~KdePlatformDependent (this=0xa0eff0,
__in_chrg=<optimized out>)
   at
/home/jeremy/devel/kde/src/kde/workspace/plasma-desktop/attica-kde/kdeplugin/kdeplatformdependent.cpp:61

#14 0x00007ffff4e10947 in QLibraryPrivate::unload (this=0xa02f50,
flag=QLibraryPrivate::NoUnloadSys) at
/home/jeremy/devel/kde/src/qt5/qtbase/src/corelib/plugin/qlibrary.cpp:548
#15 0x00007ffff4e1240d in QLibraryStore::cleanup () at
/home/jeremy/devel/kde/src/qt5/qtbase/src/corelib/plugin/qlibrary.cpp:394
#16 0x00007ffff4e10449 in qlibraryCleanup () at
/home/jeremy/devel/kde/src/qt5/qtbase/src/corelib/plugin/qlibrary.cpp:418
#17 0x00007ffff4e10467 in (anonymous
namespace)::qlibraryCleanup_dtor_class_::~qlibraryCleanup_dtor_class_
(this=0x7ffff510cf11 <(anonymous
namespace)::qlibraryCleanup_dtor_instance_>,
   __in_chrg=<optimized out>) at
/home/jeremy/devel/kde/src/qt5/qtbase/src/corelib/plugin/qlibrary.cpp:420
#18 0x00007ffff3fad60f in __cxa_finalize () from /usr/lib/libc.so.6
#19 0x00007ffff4bc7e53 in __do_global_dtors_aux () from
/home/jeremy/devel/kde/src/qt5build/qtbase/lib/libQt5Core.so.5
#20 0x00007fffffffe140 in ?? ()
#21 0x00007ffff7dea817 in _dl_fini () from /lib64/ld-linux-x86-64.so.2
Backtrace stopped: frame did not save the PC

If I change KDEPlatformDependent to keep a QNetworkAccessManager instead of
the KIO::AccessManager it doesn't segfault (but I guess we lose the kio
desktop integration in thep process) Any idea what is going on here?

thanks,
Jeremy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20141116/9271379a/attachment.htm>


More information about the kde-core-devel mailing list