Bug 276125 - Nepomuk frequently crashes when having files that constantly change content/size (XIOError) [libc_free, QFSFileEngineIterator::advance, QFSFileEngineIterator::next, ..., Nepomuk::IndexScheduler::analyzeDir, Nepomuk::IndexScheduler::run]
Summary: Nepomuk frequently crashes when having files that constantly change content/s...
Status: RESOLVED DUPLICATE of bug 282124
Alias: None
Product: nepomuk
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Sebastian Trueg
URL:
Keywords:
: 270108 275775 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-06-20 13:44 UTC by Kai Uwe Broulik
Modified: 2011-09-20 12:25 UTC (History)
7 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kai Uwe Broulik 2011-06-20 13:44:01 UTC
Application: nepomukservicestub (0.2)
KDE Platform Version: 4.6.4 (4.6.4)
Qt Version: 4.7.2
Operating System: Linux 2.6.38-8-generic x86_64
Distribution: Ubuntu 11.04

-- Information about the crash:
In 4.6.4 a new regression was introduced which causes Nepomuk to frequently crash.
This happens everytime when I have a file that constantly changes size or content, i. e. when I download a Linux ISO image or record a screencast.

The crash can be reproduced some of the time.

-- Backtrace:
Application: Nepomuk-Dienst (nepomukservicestub), signal: Aborted
__lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97
	in ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
[Current thread is 1 (Thread 0x7faa2454c780 (LWP 3574))]

Thread 3 (Thread 0x7faa1e118700 (LWP 3576)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000301967482b in wait (this=<value optimized out>, mutex=0x25ce570, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x25ce570, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007faa1e39041f in Nepomuk::IndexFeeder::run (this=0x25ce550) at ../../../../nepomuk/services/strigi/nepomukindexfeeder.cpp:188
#4  0x0000003019674175 in QThreadPrivate::start (arg=0x25ce550) at thread/qthread_unix.cpp:320
#5  0x000000301fe06d8c in start_thread (arg=0x7faa1e118700) at pthread_create.c:304
#6  0x000000301f6e604d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7faa1a698700 (LWP 3577)):
[KCrash Handler]
#6  0x000000301f633d05 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7  0x000000301f637ab6 in abort () at abort.c:92
#8  0x000000301f66cd7b in __libc_message (do_abort=2, fmt=0x301f755400 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
#9  0x000000301f678a8f in malloc_printerr (av=<value optimized out>, p=0x7faa1402f560) at malloc.c:6283
#10 _int_free (av=<value optimized out>, p=0x7faa1402f560) at malloc.c:4795
#11 0x000000301f67c8e3 in __libc_free (mem=<value optimized out>) at malloc.c:3738
#12 0x00000030196b90fc in QString::free (d=0x7faa1402f570) at tools/qstring.cpp:1185
#13 0x00000030196b9672 in QString::operator= (this=<value optimized out>, other=...) at tools/qstring.cpp:1359
#14 0x0000003019737f5a in QFSFileEngineIterator::advance (this=0x7faa1404fcb0) at io/qfsfileengine_iterator_unix.cpp:73
#15 0x0000003019730390 in QFSFileEngineIterator::next (this=0x7faa1404fcb0) at io/qfsfileengine_iterator.cpp:65
#16 0x00000030196ef2e4 in QDirIteratorPrivate::advance (this=0x7faa1404e250) at io/qdiriterator.cpp:217
#17 0x00000030196ef48d in QDirIterator::next (this=0x7faa1a697bc0) at io/qdiriterator.cpp:457
#18 0x00007faa1e386daa in Nepomuk::IndexScheduler::analyzeDir (this=0x259c650, dir_=<value optimized out>, flags=...) at ../../../../nepomuk/services/strigi/indexscheduler.cpp:391
#19 0x00007faa1e3876ec in Nepomuk::IndexScheduler::run (this=0x259c650) at ../../../../nepomuk/services/strigi/indexscheduler.cpp:338
#20 0x0000003019674175 in QThreadPrivate::start (arg=0x259c650) at thread/qthread_unix.cpp:320
#21 0x000000301fe06d8c in start_thread (arg=0x7faa1a698700) at pthread_create.c:304
#22 0x000000301f6e604d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#23 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7faa2454c780 (LWP 3574)):
#0  __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97
#1  0x000000301f67e80f in _L_lock_12013 () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x000000301f67c8d8 in __libc_free (mem=0x7faa14000020) at malloc.c:3736
#3  0x0000003019712889 in ~QByteArray (this=<value optimized out>, __in_chrg=<value optimized out>) at ../../include/QtCore/../../src/corelib/tools/qbytearray.h:383
#4  ~QUrlPrivate (this=<value optimized out>, __in_chrg=<value optimized out>) at io/qurl.cpp:294
#5  QUrl::~QUrl (this=<value optimized out>, __in_chrg=<value optimized out>) at io/qurl.cpp:4186
#6  0x0000003b4d293254 in ~PimoPrivate (this=0x3b4d4ce938, __in_chrg=<value optimized out>) at pimo.cpp:24
#7  QGlobalStaticDeleter<PimoPrivate>::~QGlobalStaticDeleter (this=0x3b4d4ce938, __in_chrg=<value optimized out>) at /usr/include/qt4/QtCore/qglobal.h:1822
#8  0x000000301f639961 in __run_exit_handlers (status=1) at exit.c:78
#9  exit (status=1) at exit.c:100
#10 0x000000301b025d48 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:781
#11 0x0000003b4c23b4e8 in KApplication::xioErrhandler (this=0x7fff8a6b1d70, dpy=0x2446710) at ../../kdeui/kernel/kapplication.cpp:419
#12 0x0000003021642dee in _XIOError () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#13 0x000000302164062d in _XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#14 0x0000003021630f1f in XEventsQueued () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#15 0x000000301b060ca7 in x11EventSourcePrepare (s=0x2429910, timeout=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:77
#16 0x000000301e8420a2 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x000000301e842f9d in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x000000301e843639 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00000030197863ef in QEventDispatcherGlib::processEvents (this=0x23e24a0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#20 0x000000301b060dfe in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#21 0x000000301975a882 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#22 0x000000301975aabc in QEventLoop::exec (this=0x7fff8a6b1b80, flags=...) at kernel/qeventloop.cpp:201
#23 0x000000301975eecb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#24 0x0000000000403c3f in main (argc=2, argv=<value optimized out>) at ../../../nepomuk/servicestub/main.cpp:165

Possible duplicates by query: bug 275986, bug 275788, bug 275775, bug 275747, bug 275675.

Reported using DrKonqi
Comment 1 Claudio 2011-06-21 19:34:35 UTC
Hi

I think the problem comes from this commit:
https://projects.kde.org/projects/kde/kdebase/kde-runtime/repository/revisions/b0b7dfdfa7051dce7ed5c7b3a6e1921de30166de

Since the update to KDE 4.6.4 I have to disable Nepomuks file-indexing because it crashes often when I download larger files (btw. during the download the indexing icon in systray is constantly flickering, because it indexes, finish indexing (disappears) immediately start to index again (reappears) ...)

I think the reason for this commit is a good one - this way the database will always be up to date - but the problem with fast changing files would not only concern downloads from the net but also bigger copy actions (from usb, lan).

Would it be possible to change the behavior of the indexer to not index on every modification update if a file changes so often - like adding a condition to wait a minute even if more inotify events are sent during this time (btw. how often does inotfy send infos - once per second?)?
Comment 2 Kai Uwe Broulik 2011-06-21 21:04:57 UTC
Yep, Nepomuk crashes when:
* I am recording a screencast (i. e. huge changing files recordmydesktop created)
* I download a ubuntu or other large iso
* I do a backup of all my stuff (also many changing files)
But this is just unacceptable as it currently is
Comment 3 Christian S 2011-07-12 06:54:20 UTC
I can confirm this behavior on Kubuntu 11.04_64 with KDE 4.6.5.

Especially the stop/go-indexing behavior is annoying, since many users tend to dowload multiple large files at once (youtube videos, torrents etc..)
Comment 4 Dario Andres 2011-08-07 13:49:10 UTC
[Comment from a bug triager]
From bug 270108 comment 1 (KDE SC 4.6.4):
- What I was doing when the application crashed:
Browsing the web on Firefox, transferring files to cellphone via bluetooth,
running soundKonverter so processor use was very high

Bug 275775 has three different reports about nepomuk crashes when uncompressing files; but I think all of them matches the "a lot of file changes" situation described here:

-- Information about the crash:
crash in same time when I unzip. when i launch multi-unzip (peazip or ark); nb some zip have an errors

-- Information about the crash:
unrar multifiles with ark on dolphin (a big files)

-- Information about the crash:
I was unpacking a large file into my desktop folder, using ark. 
The new files icon was flickering during the unpacking/creation and then
nepomunk crash.

---

Additionally, bug 275169 has a similar backtrace but without the XIOError. However the general situation is mostly the same, so they could be related.
Comment 5 Dario Andres 2011-08-07 13:49:15 UTC
*** Bug 270108 has been marked as a duplicate of this bug. ***
Comment 6 Dario Andres 2011-08-07 13:49:18 UTC
*** Bug 275775 has been marked as a duplicate of this bug. ***
Comment 7 Sebastian Trueg 2011-09-20 12:25:21 UTC

*** This bug has been marked as a duplicate of bug 282124 ***