DB differences [ was: ... bogotune.c ... ]

David Relson <[email protected]>
Newsgroups gmane.mail.bogofilter.devel
Organization Osage Software Systems, Inc.
Message-ID <[email protected]>
On Mon, 27 Jun 2005 17:28:48 +0200
Matthias Andree wrote:

> David Relson <[email protected]> writes:
> 
> > Update of /cvsroot/bogofilter/bogofilter/src
> > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26959
> >
> > Modified Files:
> > 	bogotune.c 
> > Log Message:
> > Handle conflicting open requirements of TrivialDB and Berkeley DB 4.2 (with transactions).
> >
> > Index: bogotune.c
> > ===================================================================
> > RCS file: /cvsroot/bogofilter/bogofilter/src/bogotune.c,v
> > retrieving revision 1.213
> > retrieving revision 1.214
> > diff -u -d -r1.213 -r1.214
> > --- bogotune.c	25 Jun 2005 13:16:52 -0000	1.213
> > +++ bogotune.c	26 Jun 2005 23:48:50 -0000	1.214
> > @@ -1750,7 +1750,12 @@
> >  	
> >  	init_wordlist("word", ds_path, 0, WL_REGULAR);
> >  
> > -	open_wordlists(DS_READ);
> > +	open_wordlists(DS_READ);	/* open to get .ENCODING value */
> > +#ifdef	ENABLE_TDB_DATASTORE
> > +	/* for TrivialDB, a double open fails, so the wordlist must be closed */
> > +	/* with Berkeley DB 4.2 with transactions, closing the wordlist causes a PANIC */
> > +	close_wordlists(false);
> > +#endif
> 
> Something's wrong here - there shouldn't be driver-specific differences,
> and the code should be able to cope with a single opening of the
> wordlists.
> 
> I have currently no interest in bogotune though.

Matthias,

I agree that the #ifdef shouldn't be necessary.  However, my test
script that builds multiple versions of bogofilter and tests them found
problems related to multiple opens.  

It seems that Berkeley DB, Sqlite3, and qdbm don't mind multiple calls
to open_wordlists(), but TDB has a problem with this.  Adding the call
to close_wordlists() caused TDB to work, but causes Berkeley DB 4.2
(with transactions enabled), to complain -- to the degree that a PANIC
message is generated.  

Evidently our database code is adequate for bogofilter and bogoutil,
but isn't fully correct.  I'll dig deeper when I have both time and
inclination.  At the moment, I'm willing to live with this unexpected
dependency.

Regards,

David

_______________________________________________
Bogofilter-dev mailing list
[email protected]
http://www.bogofilter.org/mailman/listinfo/bogofilter-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.