Ubuntu – 92% of syslog is filled with message regarding ‘ureadahead’ ignoring relative path

15.10syslogureadahead

I just turned on my laptop (using Ubuntu 15.10 64-bit) and checked syslog for today's logs. From total

$ cat /var/log/syslog | grep 'Mar 23' | wc -l
23791
$ cat /var/log/syslog | grep -P 'Mar 23.*Ignored relative path' | wc -l
21863

and the content is like:

Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:.: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:.: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:tunables: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:xdg-user-dirs.d: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:..: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:multiarch.d: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:..: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:home.d: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:..: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:..: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:abstractions: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:apparmor_api: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:..: Ignored relative path
.
.
.
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:3826/stat: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:3826/cmdline: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:list-c: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:tracing_on: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:events/fs/open_exec/enable: Ignored relative path
Mar 23 12:02:56 Ubuntu ureadahead[279]: ureadahead:events/fs/do_sys_open/enable: Ignored relative path

Why ~%92 of my syslog is filled with such messages?

Best Answer

ureadahead does one of two things when it starts: if /var/lib/ureadahead/pack exists and isn't more than a year old, it prereads the files recorded in the pack. However, if the pack doesn't exist or is old, ureadahead runs in "trace" mode, monitoring what files are opened and recording them in the pack file to be used in future boots.

It is trace mode that puts out these messages. So, if you boot again within a year, no messages. This is why people are seeing the problem seemingly "solve itself", but they will come back in a year, and can be made to reappear by removing /var/lib/ureadahead/pack;

There's a package trigger to do this when things change in /etc/init.d, so the re-read is often done after an update. ureadahead seems to have always worked this way, but the warnings are just written to stderr, and prior to systemd and journald, the messages never went anywhere. Probably ureadahead should be changed to only put out these messages in --verbose mode, but in the meantime I worked around the file by running ureadahead in --quiet mode. I was able to do this with a systemd drop-in file: create a file named /etc/systemd/system/ureadahead.service.d/quiet.conf containing

[Service]
ExecStart=
ExecStart=/sbin/ureadahead -q
Related Question