On Fri, Mar 11, 2005 at 10:54:09AM +0100, Jan Slodicka wrote:

> > Try no. 1: on the first pass, it got to record 1718, then gave me a Fatal
> > Alert: "Preferences.c, Line: 264, Pref DB Open Error"
> 
> Hard to believe. This normally signifies another Palm OS bug in the prefs
> handling. (They forget to close the database.) But how could this problem
> propagate to DmQueryRecord()?

I have been fighting this Preferences.c bug in a different applications,
and I noticed that application always tickled the bug when doing an
Expansion Manager operation, so it seems to me that the Expansion
Manager makes use of the Preferences Manager in some way. 

Since NVFS is almost certainly built on top of the Expansion Manager, if
the NVFS cache is getting thrashed to the point of corruption, I suppose
it's not unreasonable that it might tickle that bug. I will admit that
out of a dozen or so tests, I only saw that one once. The rest of them
were of the error 513 variety, either immediately followed by a fatal
error, or a fatal error at app exit.

> Did you try using DmGetRecord? I think we'll try to make similar
> tests...

I used DmQueryRecord exclusively, since I wanted to test reading
only. In some different tests, I did try closing the database and
reopening it before trying to re-read the record, and in that case, I
never got the 513 repeated for a record.

What I also noticed is that I didn't start to get the 513 until at least
1000 records were read (probably 15KB of data), but once I started to
get it, they would be quite frequent. Closing and reopening the database
did not alleviate this. This supports my hypothesis that thrashing the
cache eventually causes corruption.

-- 
Dave Carrigan
Seattle, WA, USA
[EMAIL PROTECTED] | http://www.rudedog.org/ | ICQ:161669680
UNIX-Apache-Perl-Linux-Firewalls-LDAP-C-C++-DNS-PalmOS-PostgreSQL-MySQL

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please 
see http://www.palmos.com/dev/support/forums/

Reply via email to