Bug 305312 - Crash on GlobalModelContainer destruction
Summary: Crash on GlobalModelContainer destruction
Status: RESOLVED FIXED
Alias: None
Product: nepomuk
Classification: Miscellaneous
Component: libnepomukcore (show other bugs)
Version: git master
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Nepomuk Bugs Coordination
URL:
Keywords:
: 311882 312198 312201 312622 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-08-17 09:52 UTC by Ivan Čukić
Modified: 2013-02-19 16:06 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Proposed fix (443 bytes, text/plain)
2012-11-16 01:27 UTC, Simeon Bird
Details
New crash information added by DrKonqi (1.60 KB, text/plain)
2012-12-25 22:56 UTC, Francesco Frassinelli
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Čukić 2012-08-17 09:52:22 UTC
This is a backtrace I got from the activity manager today.

[KCrash Handler]
#6  0x00007f36fd107f6b in QCoreApplication::removePostedEvents(QObject*, int) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f36fd117dbb in QObjectPrivate::~QObjectPrivate() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f36fd117e29 in QObjectPrivate::~QObjectPrivate() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f36fd11a60c in QObject::~QObject() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#10 0x00007f36f73d0699 in Soprano::Client::LocalSocketClientConnection::~LocalSocketClientConnection (this=0x7f36e0010210, __in_chrg=<optimized out>) at /opt/kde/src/support/soprano/client/localsocketclient.cpp:55
#11 0x00007f36fd116792 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#12 0x00007f36fd11a5d6 in QObject::~QObject() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#13 0x00007f36fdfa75ce in ~GlobalModelContainer (this=0x7f36e0014f10, __in_chrg=<optimized out>) at /opt/kde/src/libs/nepomuk-core/libnepomukcore/resource/nepomukmainmodel.cpp:62
#14 destroy () at /opt/kde/src/libs/nepomuk-core/libnepomukcore/resource/nepomukmainmodel.cpp:125
#15 0x00007f36fb36cdf2 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#16 0x00007f36fb36ce45 in exit () from /lib/x86_64-linux-gnu/libc.so.6
#17 0x00007f36fb354eb4 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#18 0x000000000040dfd9 in _start ()

Reproducible: Always




Soprano, nepomuk-core from master
Comment 1 Simeon Bird 2012-11-16 01:27:34 UTC
Created attachment 75293 [details]
Proposed fix

Does this fix it? I postulate a race between deleteLater and the QObject auto-deletion is causing the connection to be deleted twice.
Comment 2 Simeon Bird 2012-12-19 23:54:37 UTC
*** Bug 311882 has been marked as a duplicate of this bug. ***
Comment 3 Francesco Frassinelli 2012-12-25 22:56:49 UTC
Created attachment 76016 [details]
New crash information added by DrKonqi

nepomukservicestub (0.1.0) on KDE Platform 4.9.95 using Qt 4.8.4

- What I was doing when the application crashed:
I was using KMail

- Unusual behavior I noticed:
virtuoso-t process is using my cpu at 50% for many time.

Fedora 18 x86_64 + KDE 4.10rc1

-- Backtrace (Reduced):
#6  Soprano::Client::ClientConnection::isConnected (this=0x0) at /usr/src/debug/soprano-2.8.0/client/clientconnection.cpp:775
#7  0x00000033724185a2 in Soprano::Client::ClientModel::~ClientModel (this=0x203bb00, __in_chrg=<optimized out>) at /usr/src/debug/soprano-2.8.0/client/clientmodel.cpp:53
#8  0x0000003372418709 in Soprano::Client::ClientModel::~ClientModel (this=0x203bb00, __in_chrg=<optimized out>) at /usr/src/debug/soprano-2.8.0/client/clientmodel.cpp:58
#9  0x00000033820567be in ~GlobalModelContainer (this=0x203a260, __in_chrg=<optimized out>) at /usr/src/debug/nepomuk-core-4.9.95/libnepomukcore/resource/nepomukmainmodel.cpp:63
#10 destroy () at /usr/src/debug/nepomuk-core-4.9.95/libnepomukcore/resource/nepomukmainmodel.cpp:125
Comment 4 Vishesh Handa 2012-12-26 08:04:08 UTC
*** Bug 312198 has been marked as a duplicate of this bug. ***
Comment 5 Vishesh Handa 2012-12-26 09:56:46 UTC
(In reply to comment #1)
> Created attachment 75293 [details]
> Proposed fix
> 
> Does this fix it? I postulate a race between deleteLater and the QObject
> auto-deletion is causing the connection to be deleted twice.

With the new changes in Soprano, d->connection is no longer a pointer, so one cannot delete it. Also, I've removed this GlobalModelContainer, and made the NepomukMainModel act as a normal QObject, instead of a singleton. The MainModel now has the ResourceManager as a parent. This all is for RC2. I hope that fixes it. Lets see.
Comment 6 Vishesh Handa 2012-12-26 19:46:13 UTC
*** Bug 312201 has been marked as a duplicate of this bug. ***
Comment 7 Vishesh Handa 2013-01-08 06:13:44 UTC
*** Bug 312622 has been marked as a duplicate of this bug. ***
Comment 8 Vishesh Handa 2013-02-19 16:06:05 UTC
I'm marking this as FIXED. I haven't gotten any bug reports about it since RC2, which fixed the issue.