Coda File System

Re: codasrv can't allocate RVM

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Wed, 10 Oct 2001 14:06:36 -0400
On Wed, Oct 10, 2001 at 06:26:40PM +0900, Stephen J. Turnbull wrote:
> Wups.  I got the following result with no skips, skip the first, skip
> the first and second.  Only the "skipping" messages and the identity

Ok, the server was not shut down cleanly, so all the volume are marked
to need salvage.

> with skip to load with skip?  I didn't.)  How do I salvage?  Do I go
> back to the copies of DATA and LOG that I dutifully made, or can I
> somehow operate on the dump?
>
> tleepslib:/home/steve# norton-reinit -rvm /mnt/old.vicepa/LOG /mnt/old.vicepa/DATA 46137344 -load /playpen/coda-recovery/ServerDump skip 1000001 1000002

Ehhhhhh, do /mnt/old.vicepa/LOG and DATA contain the backup copies?

I hope you still have untouched ones, as the easiest thing would be to
start the server with the old rvm files and then doing a clean shutdown
which will get rid of that 'needs salvage' flag.

Seeing your message I now remember that this is the exact same problem
that hit me and forced me to go back to tapes. It was nagging in the
back of my mind when I wrote to make sure to have those copies.

It is actually the 'volume is in-use' flag that is set. It is probably
safe to disable this test, we already are safe from multiple servers
accessing the same RVM, so I'm not sure what we're testing for anyways.

If you have the source, add the following #if 0/#endif and recompile,

coda-src/vol/volume.cc, around line 905

        if (*pt == fileServer) {
+#if 0
                if (V_inUse(vp) && VolumeWriteable(vp)) {
                        FreeVolume(vp);
                        VLog(0, "VAttachVolume: volume %s needs to be salvaged; not attached.", name);
                        *ec = VSALVAGE; 
                        return NULL;
                }
+#endif

Jan
Received on 2001-10-10 14:07:28