[813] in Coldmud discussion meeting
EEK! Bad object bug in 0.2-1
daemon@ATHENA.MIT.EDU (Sun Sep 24 16:10:06 1995
)
Date: Sun, 24 Sep 1995 16:44:06 +0000 (AEST)
From: root@thelbane.brisnet.org.au (Dancer)
To: coldstuff@pippin.ece.usu.edu
We've got a bug. It's been around for a while, I daresay, but hasn't been
visible before, as we haven't had cache-flushing before.
This bug exists in driver version 0.2-1.
Somewhere, somehow, the 'dirty' flag is not being set in some case where
it _should_ be set. This is causing new object data to be lost, and old
object data to appear in it's place (as only dirty objects get written
back during cache-flushing).
Temporary fix until the problem is found:
(a) go to main.c and comment out the call to cache_cleanup(). This will
cause your memory usage to rise by about 30%.
or,
(b) go to cache cleanup, and tell it to ignore the dirty flag. (line 400)
Old line:
if (obj->dbref != INV_OBJNUM && obj->dirty)
New line:
if (obj->dbref != INV_OBJNUM)
This will cause a little more disk accessing, but should stop the problem
until it can be pinned down.