92% of syslog is filled with message regarding 'ureadahead' ignoring relative path
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?
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
Just apt purge ureadahead
-- as of cosmic Ubuntu has given up on it. It never helped much, and for most of us who only reboot when there's an update, it never helped at all.
I would recommend canvassing the log before ureadahead starts writing to it.
My system had the same symptoms and what I found were errors relating to the lack of a Java Runtime Environment:
gnome-session[939]: javaldx: Could not find a Java Runtime Environment!
As well as errors noting the absence of a certain library: libvdpau_nvidia.so.
gnome-session[939]: Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
What I did was install JRE8 and then create symlinks to /usr/lib/libvdpau_nvidia.so where it was being searched for. One (or both) of these actions solved the issue for me.