Bug 310885

Summary: Nepomuk crashed when adding new folders to be indexed.
Product: [Unmaintained] nepomuk Reporter: Luis Silva <lacsilva>
Component: filewatchAssignee: Nepomuk Bugs Coordination <nepomuk-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: bladud, me, nepomuk-bugs
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Patch

Description Luis Silva 2012-11-29 17:03:37 UTC
Application: nepomukservicestub (0.1.0)
KDE Platform Version: 4.9.3 (Compiled from sources)
Qt Version: 4.8.3
Operating System: Linux 3.5.0-18-generic i686
Distribution: Ubuntu 12.10

-- Information about the crash:
- What I was doing when the application crashed:

Nepomuk crashed when adding new folders to be indexed.
I could not reproduce his crash afterwards.

-- Backtrace:
Application: Nepomuk Service Stub (nepomukservicestub), signal: Aborted
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0xb5448740 (LWP 27118))]

Thread 3 (Thread 0xb2405b40 (LWP 27119)):
#0  0xb7797424 in __kernel_vsyscall ()
#1  0xb5f5e3eb in read () at ../sysdeps/unix/syscall-template.S:82
#2  0xb5dc8f5e in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb5d8883b in g_main_context_check () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb5d88c92 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb5d88e61 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#6  0xb763599f in QEventDispatcherGlib::processEvents (this=0xb1b00468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#7  0xb760226c in QEventLoop::processEvents (this=this@entry=0xb2405258, flags=...) at kernel/qeventloop.cpp:149
#8  0xb7602561 in QEventLoop::exec (this=0xb2405258, flags=...) at kernel/qeventloop.cpp:204
#9  0xb74ed66c in QThread::exec (this=this@entry=0xa1a58f8) at thread/qthread.cpp:501
#10 0xb74ed7cb in QThread::run (this=0xa1a58f8) at thread/qthread.cpp:568
#11 0xb74f0a58 in QThreadPrivate::start (arg=0xa1a58f8) at thread/qthread_unix.cpp:338
#12 0xb5e6bd4c in start_thread (arg=0xb2405b40) at pthread_create.c:308
#13 0xb5f6ed3e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xb1affb40 (LWP 27289)):
#0  0xb7797424 in __kernel_vsyscall ()
#1  0xb5f605f0 in __GI___poll (fds=0xb11022b0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0xb5d9774b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb5d88d00 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb5d88e61 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb763599f in QEventDispatcherGlib::processEvents (this=0xb1100468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0xb760226c in QEventLoop::processEvents (this=this@entry=0xb1aff228, flags=...) at kernel/qeventloop.cpp:149
#7  0xb7602561 in QEventLoop::exec (this=0xb1aff228, flags=...) at kernel/qeventloop.cpp:204
#8  0xb74ed66c in QThread::exec (this=0xa1a1bf0) at thread/qthread.cpp:501
#9  0xb75e07bd in QInotifyFileSystemWatcherEngine::run (this=0xa1a1bf0) at io/qfilesystemwatcher_inotify.cpp:248
#10 0xb74f0a58 in QThreadPrivate::start (arg=0xa1a1bf0) at thread/qthread_unix.cpp:338
#11 0xb5e6bd4c in start_thread (arg=0xb1affb40) at pthread_create.c:308
#12 0xb5f6ed3e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb5448740 (LWP 27118)):
[KCrash Handler]
#7  0xb7797424 in __kernel_vsyscall ()
#8  0xb5eae1df in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#9  0xb5eb1825 in __GI_abort () at abort.c:91
#10 0xb74e572c in qt_message_output (msgType=QtFatalMsg, buf=0xae2a7b8 "ASSERT: \"path != \"/\" || event->mask & EventIgnored || event->mask & EventUnmount\" in file /home/lacsilva/Development/nepomuk.d/nepomuk-core/services/filewatch/kinotify.cpp, line 351") at global/qglobal.cpp:2290
#11 0xb74e5b39 in qt_message (msgType=QtFatalMsg, msg=0xb766f598 "ASSERT: \"%s\" in file %s, line %d", ap=0xbfb05f94 "\244\275E\262\214\274E\262_\001") at global/qglobal.cpp:2336
#12 0xb74e5c58 in qFatal (msg=msg@entry=0xb766f598 "ASSERT: \"%s\" in file %s, line %d") at global/qglobal.cpp:2519
#13 0xb74e5ce5 in qt_assert (assertion=0xb245bda4 "path != \"/\" || event->mask & EventIgnored || event->mask & EventUnmount", file=0xb245bc8c "/home/lacsilva/Development/nepomuk.d/nepomuk-core/services/filewatch/kinotify.cpp", line=351) at global/qglobal.cpp:2016
#14 0xb245531f in KInotify::slotEvent (this=this@entry=0xa2379b0, socket=13) at /home/lacsilva/Development/nepomuk.d/nepomuk-core/services/filewatch/kinotify.cpp:351
#15 0xb2455f81 in KInotify::qt_static_metacall (_o=0xa2379b0, _c=QMetaObject::InvokeMetaMethod, _id=14, _a=0xbfb06178) at /home/lacsilva/Development/nepomuk.d/nepomuk-core/BUILD/services/filewatch/kinotify.moc:95
#16 0xb761bed6 in QMetaObject::activate (sender=0xa2528a8, m=0xb7768458 <QSocketNotifier::staticMetaObject>, local_signal_index=0, argv=0xbfb06178) at kernel/qobject.cpp:3547
#17 0xb766c875 in QSocketNotifier::activated (this=0xa2528a8, _t1=13) at .moc/release-shared/moc_qsocketnotifier.cpp:103
#18 0xb7622a3f in QSocketNotifier::event (this=0xa2528a8, e=0xbfb065b4) at kernel/qsocketnotifier.cpp:317
#19 0xb624f39c in QApplicationPrivate::notify_helper (this=0x9fc93f8, receiver=0xa2528a8, e=0xbfb065b4) at kernel/qapplication.cpp:4562
#20 0xb6253daf in QApplication::notify (this=0xbfb065b4, receiver=0xa2528a8, e=0xbfb065b4) at kernel/qapplication.cpp:3944
#21 0xb6eebe91 in KApplication::notify (this=0xbfb06924, receiver=0xa2528a8, event=0xbfb065b4) at ../../kdeui/kernel/kapplication.cpp:311
#22 0xb760378e in QCoreApplication::notifyInternal (this=0xbfb06924, receiver=0xa2528a8, event=0xbfb065b4) at kernel/qcoreapplication.cpp:915
#23 0xb7635138 in sendEvent (event=0xbfb065b4, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#24 socketNotifierSourceDispatch (source=0x9fc4550) at kernel/qeventdispatcher_glib.cpp:110
#25 0xb5d889e3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#26 0xb5d88d80 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#27 0xb5d88e61 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#28 0xb7635981 in QEventDispatcherGlib::processEvents (this=0x9fa65d0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#29 0xb63059aa in QGuiEventDispatcherGlib::processEvents (this=0x9fa65d0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#30 0xb760226c in QEventLoop::processEvents (this=this@entry=0xbfb067f8, flags=...) at kernel/qeventloop.cpp:149
#31 0xb7602561 in QEventLoop::exec (this=0xbfb067f8, flags=...) at kernel/qeventloop.cpp:204
#32 0xb7607cba in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#33 0xb624cfc4 in QApplication::exec () at kernel/qapplication.cpp:3823
#34 0x0804b479 in main (argc=2, argv=0xbfb06a34) at /home/lacsilva/Development/nepomuk.d/nepomuk-core/servicestub/main.cpp:177

Possible duplicates by query: bug 307621, bug 302243, bug 298008, bug 298006, bug 298005.

Reported using DrKonqi
Comment 1 Simeon Bird 2012-12-04 05:07:12 UTC
Are you really running 4.9.3? From the backtrace it looks like the assert was one only added for 4.10
Comment 2 Luis Silva 2012-12-08 23:36:24 UTC
I should have said this before. I am using binary packages from 4.9.3 from kubuntu but I compiled the nepomuk stack (soprano, nepomuk-core) from master.
Comment 3 Simeon Bird 2012-12-09 03:10:36 UTC
Ok, thanks. You can 'fix' this by compiling the packages in release build: pass

-DCMAKE_BUILD_TYPE=Release 

to cmake (this should also make nepomuk much faster). 

Aside from that, it is a little bit strange the assert triggered, and I'd like to understand why. 
(You aren't trying to index '/', are you? There are other reasons that won't work too well. )

The only other possibility I can think of offhand is that EventQueueOverflow is happening. 
Were you moving a lot of files around at the same time as adding the watches?
Comment 4 Simeon Bird 2012-12-09 03:13:48 UTC
Created attachment 75741 [details]
Patch

Could you try the attached patch? If the bug triggers again, it should give us some more idea why.

Thanks
Comment 5 Luis Silva 2012-12-19 01:46:17 UTC
> (You aren't trying to index '/', are you? There are other reasons that won't work too well. )
No, I am and was not trying to index /

I will be trying this patch in the next few days.
Comment 6 Luis Silva 2013-01-03 19:50:41 UTC
Ok! I tried the patch and I seem to not have had this crash anymore. However, I cannot reproduce the crash without the patch either. It seems to have been a one-time thing.

Answering Comment #3, no, I was not indexing '/' or moving files at the time. However, I was adding a hidden folder to the index which was implicitly excluded by the default eclusion rules.
Comment 7 Vishesh Handa 2013-01-16 15:48:03 UTC
Please reopen this bug if it happens again. For now, I'm marking it as FIXED.