Tuesday 29 October 2013

Slowdown on Ubuntu 13.10, CPU for accounts-daemon

My HP Microserver recently started to run like Herbert's dog on Family Guy, for no apparent reason. It seemed to slow things down when logging in to the desktop GUI. Boot was fine, as I run via an 80Gb SSD but logging in was soooo slow.

Whilst the GUI was taking about 1 minute or so, I switched to a console session (Ctrl-Alt-F1) and saw that there seemed to be 2 processes caning the CPU. The first culprit seemed to be /usr/lib/accountsservice/accounts-daemon whilst the second process was gnome-settings-daemon.

My first kludge was to simply write a script to kill the processes after logging in but that was only a temporary solution. I was still faced with the delay attempting to log in.

Further digging around on the internet showed that it was more than likely due to updates installed recently with regard to the following 3 bits of software:

glib-networking
glib-networking-common
glib-networking-services


Some posters on the thread at http://ubuntuforums.org/showthread.php?t=1970326&page=4 suggested that it only affected 64 bit versions of Ubuntu and that you were able to install an older package version.


I elected to follow the advice given by poster adamiak where he suggested using the following command:


sudo apt-get build-dep accountsservice

(I performed this because I'd previously experienced dependency problems when trying to build the alternative accountsservice listed below - I was missing libpolkit-gobject-1)

I then followed the advice offered by a previous poster ambrosa about building/compiling a version of accountsservice from scratch:

download http://www.freedesktop.org/software/...-0.6.20.tar.xz and extract with
tar xvf accountsservice-0.6.20.tar.xz
cd accountsservice-0.6.20
./configure
make


Replaced the original daemon with newly compiled version (making a backup first)
sudo cp -a /usr/lib/accountsservice/accounts-daemon /usr/lib/accountsservice/accounts-daemon.bak
sudo killall accounts-daemon
sudo cp src/accounts-daemon /usr/lib/accountsservice/accounts-daemon

 

This solved the problem after a reboot and all is now working perfectly. It took me a while to figure out what was going on so I'm sharing my experience as it may help others :-) 

N.B. You will probably have noticed a whole heap of new users listed on the login screen - I am now going to search to find out how to remove those errant users I have no need for.

Cheers.