[813] in Coldmud discussion meeting

root meeting help first previous next last

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%.


(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.