(Illustration by Gaich Muramatsu)
"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. > > JanReceived on 1998-04-28 03:52:32