Coda File System

Re: Problems with multiple file cp.

From: Ivan Popov <pin_at_medic.chalmers.se>
Date: Fri, 22 Apr 2005 10:31:21 +0200
Hi John,

On Thu, Apr 21, 2005 at 01:30:47PM -0700, John Anderson wrote:
> I've run into a bit of snag when coping a few thousand small files into 
> a coda volume from a standard ext3 volume.  Cp copies the first 3,000 or 
> so files  out of 14,069 files on the ext3 filesystem, then venus goes a 

> The directory structure I'm copying looks like this:
> 
> ./banner
>       - Tons of .gif files
>       ./preview
>             -Tons of .gif files

well, in general your structure may be impossible to copy to Coda.
Coda max directory size is for the moment 256K and it is very probable
that your 14,069 files in two directories will overflow the limit
on at least one of the directories.

On the other side, Venus should not die in that situation, but return
ENOSPC. In your case it dies, apparently.

> [5] Output of an strace attached to above cp's PID (8.5 MB)
> http://chesty.homedns.org:4572/CODA/strace_out_2.6.5

---------------------------------------------------------------
 ...
lstat64("banner/preview/9228850055-3ck-STANDARD-1.gif", {st_mode=S_IFREG|0644, s
t_size=16954, ...}) = 0
open("banner/preview/9228850055-3ck-STANDARD-1.gif", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=16954, ...}) = 0
open("/coda/kickstart.ccbill-hq.com/frontj/virtual/banner/preview/9228850055-3ck
-STANDARD-1.gif", O_WRONLY|O_CREAT|O_LARGEFILE, 0100644) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=16954, ...}) = 0
read(3, "\377\330\377\340\0\20JFIF\0\1\2\0\0d\0d\0\0\377\354\0\21"..., 8192) = 8
192
write(4, "\377\330\377\340\0\20JFIF\0\1\2\0\0d\0d\0\0\377\354\0\21"..., 8192) = 
8192
read(3, "\321ld\16\225\4_:\221\335n\325\263\232\272x^\2\355\364"..., 8192) = 819
2
write(4, "\321ld\16\225\4_:\221\335n\325\263\232\272x^\2\355\364"..., 8192) = 81
92
read(3, "eZ\246\276p\0247V\375\'\326U\252k\347\31a\246\356\376_"..., 8192) = 570
write(4, "eZ\246\276p\0247V\375\'\326U\252k\347\31a\246\356\376_"..., 570) = 570
read(3, "", 8192)                       = 0
close(4)                                = 0
close(3)                                = 0
###### last file that seemed OK, but it is probably right after that Venus dies

lstat64("banner/preview/9127210001-11cc-STANDARD-1.gif", {st_mode=S_IFREG|0644, 
st_size=12119, ...}) = 0
open("banner/preview/9127210001-11cc-STANDARD-1.gif", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=12119, ...}) = 0
open("/coda/kickstart.ccbill-hq.com/frontj/virtual/banner/preview/9127210001-11c
c-STANDARD-1.gif", O_WRONLY|O_CREAT|O_LARGEFILE, 0100644) = -1 ENODEV (No such d
evice)
###### Venus is dead

 ...
---------------------------------------------------------------

Now, looking at your
> [2]  venus.conf
> http://chesty.homedns.org:4572/CODA/venus.conf
---------------------------------------------------------------
 ...
cacheblocks="7900000"
 ...
---------------------------------------------------------------

I see that you allocated a huge cache, with default RVM size calculation,
which most probably exceeded 1G - which very efficiently kills venus.

What did venus say at startup about RVM size?

You may want to either choose a smaller cache or, better, explicitely specify
the max number of files and hoard entries in the cache.

Regards,
--
Ivan
Received on 2005-04-22 04:36:17