[Nepomuk] apparent deadlock when suspending indexing

Edward Toroshchin edward.hades at gmail.com
Sat Jun 2 16:18:51 UTC 2012


Hey guys,

I've been poking around recently to find out, why nepomuk file indexing
service does not work. By "does not work" I mean it just hangs there,
not doing anything, not answering any dbus queries, and not even
shutting down when asked so by the Nepomuk server.

The reason is strange, because I can't understand how it could work for
anyone else in the released code (the version is 4.8.3).

So, where were I? Yeah, the reason. It turns out that the slot
Nepomuk::EventMonitor::slotIndexingSuspended does more than the comments
say, and what you'd normally think it does (note the past tense).

See nepomuk/services/fileindexer/eventmonitor.cpp:176:

if( suspended ) {
    //The indexing is already paused, this meerly sets the correct
    //state, and adjusts the timing.
    pauseIndexing( PausedCustom );
}
else {
    //Again, used to set the correct state, and adjust the timing.
    resumeIndexing();
}

Despite stating that "this merely sets the correct state" the
pauseIndexing and resumeIndexing methods actually ask the IndexScheduler
to pause and resume indexing respectively. This in turn makes
IndexScheduler emit a corresponding signal, which triggers the
slotIndexingSuspended slot.

Luckily (or unluckily) this does not lead to stack corruption, but
to a mere deadlock.

So my question is, do I understand everything correctly, or is it should
in fact be working, but fails on my box for unknown reason?

Sorry if this has already been discovered and fixed. If so, could you
please say in which commit, so I can backport the fix?

Thanks in advance, and have a nice weekend!

-- 
Edward "Hades" Toroshchin
dr_lepper on irc.freenode.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/nepomuk/attachments/20120602/20faf49e/attachment.sig>


More information about the Nepomuk mailing list