6

Problem

Many users (including me) found out from one moment to another that the usage disk space is really strange. One day I had 50Gb free and the next I had 3Gb, it is just crazy.

This happened with different versions of Ubuntu (11.04, 12.04 and 12.10 just to mention).

Some of those user have create question on this site, some of them:

Solution

@NathanWienand have discovered that the problem was caused by the .xsession-errors.old file (it can be found on the $HOME directory) and he and others user solved the problem removing the file. An example of the size that can have this file is ~100Gb, not reasonable..

Question

  • Why does this happen?
  • Is deleting the file the only way to solve it?
  • Isn't there another way to solve this with a large period effect?
  • Does this problem affect only to 64 bits system's users?

If you have something to add here, feel free to edit the question.

Lucio
  • 18,843
  • 1
    @BiggJJ I tried this and it seemed to work for a few hours. I came back the next day to almsot no disk space AGAIN. As it turns out, if the file is locked, it dumps all of the errors somewhere in the Kcore, which I couldn't access. I unlocked the file and nothing changed, it was still dumping in Kcore. To fix your "solution" I had to do a clean install. Please do not suggest a fix unless you know from personal experience that it works. –  Jul 18 '13 at 19:57
  • Ignoring error messages is Bad. The system switched to "dumps all of the errors somewhere in the Kcore," when it could not write ~/.xsession-errors.old. The system does not retry ~/.xsession-errors.old, so it will never switch back. – waltinator Aug 28 '15 at 14:32

2 Answers2

1

You could investigate the problem. Yes, I know it's a big file, but by throwing away data and letting the computer do the work, one could:

cat .xsession-errors* | \
    egrep -v '^$' | \
    sed -e 's/[0-9][0-9]\+/#NUM#/g'  | \
    sort | \
    uniq -c | \
    sort -rn | \
    tee counts.out | \
    less -XMersj3

Some messages (on my system without the problem) like:

     38 /usr/share/software-center/softwarecenter/ui/gtk3/widgets/exhibits.py:#NUM#: Warning: Source ID #NUM# was not found when attempting to remove it
     38   GLib.source_remove(self._timeout)
     36 (nautilus:#NUM#): Gdk-CRITICAL **: gdk_window_get_origin: assertion 'GDK_IS_WINDOW (window)' failed

happen more often (38, 38, 36 times) than others, and therefore deserve more investigation.

Others:

 1 compiz (core) - Info: Loading plugin: ccp
 1 compiz (core) - Info: Loading plugin: animation

Another thing to do is to look for deleted, but still open files:

 sudo lsof / | egrep 'PID|(deleted)'

Look for large SIZE/OFF values.

And look for large open files:

sudo lsof / | \
    awk '{if($7 > 1048576) print $7/1048576 "MB" " " $9 }' | \
    sort -n -u 
waltinator
  • 36,399
-2

I am not sure why this happens, but this is a bit big for a comment.

I would just stop them being created by running these command:

rm .xsession-errors.old

touch .xsession-errors.old

sudo chattr +i .xsession-errors.old

So delete the file, create a new one, and then set the immutable attribute to stop anything writing or reading it.

You will need to logout.

Hope it helps.

BiggJJ
  • 1,249
  • 9
  • 23
  • I really don't know what the third command does. Explain a bit further please. Do you mean, create the file so nothing can write it? Also, the file is not .xsession-errors but .xsession-errors.old – Lucio Jun 30 '13 at 19:23
  • Yes, the 3rd command will basically lock the file up so nothing can write or read it. Not even root. The only way to unlock it is by running sudo chattr -i .xsession-error.old Here is a wiki page on the chattr command: chattr – BiggJJ Jun 30 '13 at 19:46
  • But why I would do something like that? That is not a solution. Don't forget that the file has a purpose for the system. – Lucio Jun 30 '13 at 19:47
  • It would stop huge amounts of data being written to the file. As I said, I am not sure why it happens, but this is one way to stop it happening. – BiggJJ Jun 30 '13 at 19:49
  • 1
  • Thanks for the link. Every user that has had the same problem should sign it. – Lucio Jun 30 '13 at 19:59
  • @Lucio "I really don't know what the third command does" can easily be fixed, by typing man sudo; man chattr – waltinator Aug 18 '15 at 19:15