Coda File System

Re: crash in rvmlib_free (not necessarily) during repair

From: <u-codalist-rcma_at_aetey.se>
Date: Mon, 8 Jul 2013 12:17:03 +0000
Hello Piotr,

On Mon, Jul 08, 2013 at 01:20:00PM +0200, Piotr Isajew wrote:
> I want to copy manuals directory into it:
> 
> cp -r manuals /coda/coda.localnet/docs/
> 
> manuals is not something really big:
> 
> $ du -sh manuals
> 629M    manuals
> 
> $ find manuals | wc -l
> 31216
> 
> (I'm sure, I don't exceed 4k files per directory limit: there is
> no more than 100 files per directory).

I also did encounter problems while copying large amounts of data
(though mostly unexpected conflicts, not the kind of crash you get).

It looks like there are lurking bugs at reintegration/resolution of file
hierarchies, irrespective of the data sizes but depending on the depth.

We routinely copy up to hundreds of megabytes to Coda but it is usually
a single directory populated with several dozen files.

As for deep file trees, copying them to Coda more often than not leads
to conflicts. I am not surprised that such errors can trigger crashes -
as these are apparently unexpected situations, neither expected
by the code (probably triggered by some races?).

The kind of problems/crashes may differ between yours and our
installations if you are compiling your servers yourself. I am running
(naturally) with the packages which are present on aetey's web site. They
are statically linked, using uclibc. I do not mean that the relevant code
is different, but corruptions may lead to different symptoms depending
on the memory layout.

(otherwise, compilers can also produce "differently broken" code)

> Of course I can restart both servers and resume copy operation
> (which continues to local cache anyway), but this leads to
> server/server conflicts sooner or later.
> 
> I have to populate that volume in some way. Maybe I should just
> shutdown non-SCM and copy to SCM only? Or maybe running a client
> directly on the SCM, just for that copy operation would be a
> better option?

I would suggest scripting the copy into slices per file hierarchy
level (i.e. breadth first) and ensuring that the changes are fully
reintegrated/resolved before copying the next deeper slice.

I wish I had the time (or funding) to be able to sit down and work on
Coda fixing/development but I haven't got any since quite some time. Sigh.

Regards,
Rune
Received on 2013-07-08 08:26:44