Version: (using Devel) Installed from: Compiled sources Since commit r1087828 I get regular lockups inside Konqueror, for example when starting it, but also while browsing. Nepomuk is disabled in systemsettings. I have full trunk installed, that includes playground stuff. Backtrace while Konqueror freezes on startup (I have yet to find out how to create a backtrace with all threads included): #0 0xffffe424 in __kernel_vsyscall () #1 0xb687a899 in __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S:142 #2 0xb68783e6 in pthread_cond_signal@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:174 #3 0xb68ed33c in QMutexPrivate::wakeUp (this=0x85624b0) at thread/qmutex_unix.cpp:111 #4 0xb68e87e5 in QMutex::unlock (this=0x856229c) at thread/qmutex.cpp:384 #5 0xb3d12ad9 in QMutexLocker::unlock() () from /local/kde4/lib/libqca.so.2 #6 0xb3d12a8f in QMutexLocker::~QMutexLocker() () from /local/kde4/lib/libqca.so.2 #7 0xaf744668 in Soprano::Client::ClientConnection::~ClientConnection() () from /local/kde4/lib/libsopranoclient.so.1 #8 0xaf742ec6 in Soprano::Client::LocalSocketClientConnection::~LocalSocketClientConnection() () from /local/kde4/lib/libsopranoclient.so.1 #9 0xaf743802 in Soprano::Client::LocalSocketClient::disconnect() () from /local/kde4/lib/libsopranoclient.so.1 #10 0xaf743729 in Soprano::Client::LocalSocketClient::connect(QString const&) () from /local/kde4/lib/libsopranoclient.so.1 #11 0xaf954fac in (anonymous namespace)::GlobalModelContainer::init (this=0x855b870, forced=true) at /local/svn/kde/trunk/KDE/kdelibs/nepomuk/core/nepomukmainmodel.cpp:101 #12 0xaf9558d2 in Nepomuk::MainModel::init (this=0x854d248) at /local/svn/kde/trunk/KDE/kdelibs/nepomuk/core/nepomukmainmodel.cpp:188 #13 0xaf94ff12 in Nepomuk::ResourceManager::init (this=0x8551a28) at /local/svn/kde/trunk/KDE/kdelibs/nepomuk/core/resourcemanager.cpp:297 #14 0xaf580685 in Nepomuk::KonquerorTaskPlugin::KonquerorTaskPlugin (this=0x854efc8, parent=0x845c4c0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /local/svn/kde/trunk/playground/base/nepomuk-kde/konqueror/taskplugin/konquerortaskplugin.cpp:85 #15 0xaf58247f in KPluginFactory::createInstance<Nepomuk::KonquerorTaskPlugin, QObject> (parentWidget=0x0, parent=0x845c4c0, args=...) at /local/kde4/include/KDE/../kpluginfactory.h:461 #16 0xb77ad310 in KPluginFactory::create (this=0x853d268, iface=0xb75af69c "KParts::Plugin", parentWidget=0x0, parent=0x845c4c0, args=..., keyword=...) at /local/svn/kde/trunk/KDE/kdelibs/kdecore/util/kpluginfactory.cpp:191 #17 0xb7596d9c in KPluginFactory::create<KParts::Plugin> (this=0x853d268, keyword=..., parent=0x845c4c0, args=...) at /local/svn/kde/trunk/KDE/kdelibs/kdecore/util/kpluginfactory.h:503 #18 0xb759670f in KLibLoader::createInstance<KParts::Plugin> (keyword=..., libname=..., parent=0x845c4c0, args=..., error=0x0) at /local/svn/kde/trunk/KDE/kdelibs/kdecore/util/klibloader.h:219 #19 0xb7595c07 in KLibLoader::createInstance<KParts::Plugin> (libname=..., parent=0x845c4c0, args=..., error=0x0) at /local/svn/kde/trunk/KDE/kdelibs/kdecore/util/klibloader.h:250 #20 0xb7594218 in KParts::Plugin::loadPlugin (parent=0x845c4c0, libname=...) at /local/svn/kde/trunk/KDE/kdelibs/kparts/plugin.cpp:190 #21 0xb7594ca6 in KParts::Plugin::loadPlugins (parent=0x845c4c0, parentGUIClient=0x845c4d4, componentData=..., enableNewPluginsByDefault=true, interfaceVersionRequired=0) ---Type <return> to continue, or q <return> to quit---q
I can confirm that using Soprano r1082162 fixes the lockups again (with the rest of the system current trunk).
SVN commit 1088551 by trueg: unlock the mutex before deleting it. BUG: 226218 M +2 -1 clientconnection.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1088551
*** Bug 226154 has been marked as a duplicate of this bug. ***
commit bebb50871961ec19431ceb250e349b42be8e4aea branch 2.5 Author: Sebastian Trueg <sebastian@trueg.de> Date: Thu Feb 11 09:25:44 2010 +0000 unlock the mutex before deleting it. BUG: 226218 svn path=/trunk/kdesupport/soprano/; revision=1088551 diff --git a/client/clientconnection.cpp b/client/clientconnection.cpp index e75e70b..2d2fed8 100644 --- a/client/clientconnection.cpp +++ b/client/clientconnection.cpp @@ -71,12 +71,13 @@ Soprano::Client::ClientConnection::ClientConnection( QObject* parent ) Soprano::Client::ClientConnection::~ClientConnection() { - QMutexLocker lock( &d->socketMutex ); + d->socketMutex.lock(); // the sockets need to be deleted in their respective threads. // this is what d->socketStorage does. We only close them here. foreach( QIODevice* socket, d->sockets ) { socket->close(); } + d->socketMutex.unlock(); delete d; }