GNOME Bugzilla – Bug 710022
tracker-extract causing dbus denial-of-service
Last modified: 2014-02-23 12:19:30 UTC
After log in, tracker-extract is causing a denial-of-service against the session dbus daemon by keeping many (1000+) open connections to it. The large number of connections causes the session daemon to run out of file descriptors, and hence unable to accept any new connections. This leads to the desktop becoming unresponsive and non-functional, since nearly everything uses dbus these days. A typical symptom of the problem looks like this: > mjg@montbard:~ $ emacs > (emacs:21035): GConf-WARNING **: Client failed to connect to the D-BUS daemon: > Failed to determine seats of user "1000": Too many open files When this is occurring, lsof reports the session dbus-daemon instance has 1024 FD's open - most of them being pipes, and tracker-extract in a similar situation. On killing tracker-extract, the number of dbus-daemon FDs open returns to some small sane number, and it returns to being able to accept connections again. This mainly seems to happen some time not long after log-in, so presumably tracker-extract has a dbus connection leak and tracker's initial scan-on-start is causing it to become pathological.
Hello, thank you for reporting this bug. What's the exact version of Tracker you're using? I fixed an issue or two that could cause this in earlier 0.16.x versions.
Currently on version 0.16.2 - or more precisely 0.16.2-1ubuntu1 from the Ubuntu GNOME PPA. Anything I can do that would be useful to help debug this? I'm pretty sure it eventually happens every time I log in.
Hmm, I was hoping it was fixed by bug #704048 (Don't leak file descriptors & use up all FDs). Seems that was released in 0.16.2 though. It could well be that it's another extractor that's keeping files open. Are you able to follow the debug instructions to help produce logs and see what's really going on? https://wiki.gnome.org/Tracker/Documentation/Debugging You can start tracker-extract manually with: /usr/libexec/tracker-extract -v 3 -d It could be it's being killed or problematic files? The logs should tell us more. If you don't get anything there, you can run the tracker-miner-fs from the same location with -v 3 to see what instructions are being sent to the extractor and see if it's a bug there... That would be really useful. Thanks.
It's not showing up immediately, so I've set the log level to debug in gsettings, but because of TRACKER_USE_LOG_FILES being unset I'm not getting any logging at all. How do I set that for processes being activated via DBus?
It should show up in syslog and/or ~/.xsession-errors IIRC if that env var is not set.
Since I have not been able to successfully reproduce this, and since I haven't noticed it in a while using 0.16.4, resolving this as invalid. Will re-open if I notice it happening again.