Coda File System

Re: disconnecting

From: Peter J. Braam <braam_at_cs.cmu.edu>
Date: Tue, 28 Apr 1998 08:45:25 -0400 (EDT)
Ahh, but Bob doesn't have that code yet.

Peter


On Tue, 28 Apr 1998, J.A. Harkes wrote:

> 
> "Peter J. Braam" wrote:
> > On Mon, 27 Apr 1998 thoth_at_purplefrog.com wrote:
> > > "Peter J. Braam" <braam_at_cs.cmu.edu> wrote:
> > > > On Mon, 27 Apr 1998 thoth_at_purplefrog.com wrote:
> > > > >
> > > > >   Anyway, this is showing up in my codacon.
> > > > > 
> > > > > [ H(07) : 0007 : 14:00:18 ] binding::~binding:  somebody forgot
> > > > > to decrement before delete
> > > 
> > >  You didn't explain what this error message is.  It has a reference
> > >  to a C++ destructor.  I'm not used to seeing code references in
> > >  error messages unless something has gone horribly wrong.
> > 
> > Grrr, I have no idea -- I'll post it to our bugs list.  We should get to
> > look in great detail at hoarding etc during the next 3 months (Jan Harkes
> > will be joining us in early June and he will become our integrated
> > disconnected hoarding Venus guru.).
> 
> This sounds a lot like the bug we found in the hoarding code, but the
> patch already made it into the latest version of coda. Maybe it wasn't
> sufficient
> 
> 
> On Thu, 29 Jan 1998, J.A. Harkes wrote:
> >
> > Hi Peter,
> > 
> > Forget my earlier post. When uncommenting the `return' in
> > AttachHdbBinding, the duplicate binding is still created, only not
> > attached to the fso. According to the comments in CheckComponent it
> > `should' be caught there, but isn't.
> > 
> > The duplicate binding could be seen as a bug, it doesn't really break
> > anything.
> > 
> > I found the actual problem, and fixed it. So now I am able to hoard to
> > my hearts content.
> > 
> > The actual problem is in the InitTally function. When the old
> > tally-entries are deleted, the dlist_iterator still references the
> > deleted entry.
> > 
> > There are 2 way of fixing this, rewrite the dlist_iterator (and
> > rec_dlist_iterator) to prefetch the next item, analogous to the
> > olist_iterator. !!But this could have side-effects when someone inserts
> > an entry.
> > 
> > or:
> > 
> > --- coda-4.3.8/coda-src/venus/tallyent.cc.orig	Thu Jan 29 10:24:57 1998
> > +++ coda-4.3.8/coda-src/venus/tallyent.cc	Thu Jan 29 10:25:41 1998
> > @@ -104,8 +104,10 @@
> >      dlist_iterator next(*TallyList);
> >      dlink *d;
> >  
> > -    while (d = next()) {
> > +    d = next();
> > +    while (d) {
> >        tallyent *te = strbase(tallyent, d, prioq_handle);
> > +      d = next();
> >        delete te;
> >      }
> >  
> > I presume that you've already found and fixed this one in the current
> > development version. Or nobody at CMU ever uses hoarding.
> > 
> > Jan
> 
Received on 1998-04-28 09:49:01