With venus sources from yesterday (I think), I found venus wedged in
an apparent tight loop (R, with tons of cpu time). gdb showed it to
be in KillMgrps; it seemed that mgrpents had both prev and next 0. I
really don't know what I'm doing here, but I put in the following and
I'll see what happens. Perhaps some more asserts are needed.
This seems to have something to with tokens
expiring - it happened on my coda server, through whose venus I backup
stuff using amanda/gnutar after amanda acquires tokens.
Index: venusvol.cc
===================================================================
RCS file: /coda-src/coda/coda-src/venus/venusvol.cc,v
retrieving revision 4.60
diff -u -r4.60 venusvol.cc
--- venusvol.cc 2000/10/25 11:57:46 4.60
+++ venusvol.cc 2000/10/28 13:36:56
@@ -1808,6 +1808,10 @@
LOG(10, ("repvol::KillMgrps volume = %x\n", vid));
for (p = mgrpents.next; p != &mgrpents;) {
+ if ( p == NULL ) {
+ LOG(0, ("repvol::KillMgrps null pointer"));
+ break;
+ }
mgrpent *m = list_entry(p, mgrpent, volhandle);
p = m->volhandle.next;
m->Suicide(1);