Cache full

Simon Josefsson jas at pdc.kth.se
Mon Apr 5 14:35:29 CEST 1999


Arla 0.22, linux 2.2, glibc2.1, redhat5.2.

Hi. When the cache is full Arla doesn't seem to want to discard old
junk to make room for new junk, and almost everything either hang
(presumably waiting for Arla to fetch it) or return ENOSPC.

This happens after 1-2 weeks or so. I can't reproduce it in a newly
restarted arla -- everything works even when the cache is full, as
expected.

OTOH it's quite reproducable otherwise, just put the machine in a
corner for a week or two (running some cron jobs daily which access
AFS quite heavily), and you'll get ENOSPC from lots of syscalls.

Feels like the cache algorithm doesn't find anything to flush.

Sorry if this has been fixed with 0.23, I'll upgrade now.

bash$ cd
bash$ /usr/arla/bin/fs lq
Volume Name            Quota    Used    % Used   Partition
H.jas                 350000  330884       95%<<       41%      <<WARNING
bash$ df -kP
Filesystem         1024-blocks  Used Available Capacity Mounted on
/dev/hda1            1018298  852971   112716     88%   /
/dev/hda3            3152666  759446  2230161     25%   /scratch
arla                 1048576       0  1048576      0%   /afs
bash$ /usr/arla/bin/fs getcache
Arla is using 102395 of the cache's available 102400 1K byte blocks
(and 8000 of the cache's available 10000 vnodes)
bash$ strace cat ~/.emacs 2>&1 | grep ENOSPC
open("/afs/pdc.kth.se/home/j/jas/.emacs", O_RDONLY) = -1 ENOSPC (No space left on device)
bash$ strace ls
...
open(".", O_RDONLY|O_NONBLOCK|0x10000)  = 3
fstat(3, {st_mode=S_ISUID|07, st_size=0, ...}) = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
lseek(3, 0, SEEK_CUR)                   = 0
getdents(3, ^C
bash$





More information about the Arla-drinkers mailing list