El Diumenge, 16 de novembre de 2014, a les 13:50:03, Jeremy Whiting va escriure: > 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.
Try running it with valgrind, may tell you something more itneresting. Cheers, Albert > > Program received signal SIGSEGV, Segmentation fault. > 0x00007ffff720057e in > QExplicitlySharedDataPointer<QNetworkConfigurationPrivate>::~QExplicitlyShar > edDataPointer (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>::~QExplicitlyShar > edDataPointer (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/qnetworkconfigurati > on.cpp:304 > > #2 0x00007ffff71bd9e1 in > QNetworkAccessManagerPrivate::~QNetworkAccessManagerPrivate (this=0xa13740, > __in_chrg=<optimized out>) > at > /home/jeremy/devel/kde/src/qt5/qtbase/src/network/access/qnetworkaccessmanag > er.cpp:1488 > > #3 0x00007ffff71bda6c in > QNetworkAccessManagerPrivate::~QNetworkAccessManagerPrivate (this=0xa13740, > __in_chrg=<optimized out>) > at > /home/jeremy/devel/kde/src/qt5/qtbase/src/network/access/qnetworkaccessmanag > er.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/qnetworkaccessmanag > er.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 >> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<