On Fri, May 29, 2009 at 09:38:59PM +0200, Florian Weimer wrote: > * Jonathan McDowell: > > > I'd like to upload a new onak package to stable to fix #520117 by > > rebuilding against db4.5 instead of db4.6 - I'm hitting what seems to be > > #510270 in db4.6. > > Shouldn't this be fixed in db4.6 instead?
That would be nicest, but I haven't seen any movement on it. db4.5 and db4.7 both don't seem to have the issue and it only happens when opening read-only afaict. I don't have the time to delve into the depths of db4.6 and I've had several complaints about onak being broken as a result of this. On Fri, May 29, 2009 at 10:20:21PM +0200, Julien Cristau wrote: > On Fri, May 29, 2009 at 14:11:31 +0100, Jonathan McDowell wrote: > > I'd like to upload a new onak package to stable to fix #520117 by > > rebuilding against db4.5 instead of db4.6 - I'm hitting what seems to be > > #510270 in db4.6. > > > Can db4.5 read files written by 4.6 without problems? Bugger. I was sure I'd tried this, but either I hadn't or I got lucky. I can reliably make things break by going 4.6 -> 4.5 with no other changes. Which means I have to go for the more invasive approach of disabling opening the DB read-only, which makes 4.6 work (instead of failing after a dozen or so repeated attempts it can happily go for at least 24,000). Revised diff attached. J. -- Funny how life imitates LSD. This .sig brought to you by the letter Q and the number 46 Product of the Republic of HuggieTag
diff -u onak-0.3.6/debian/changelog onak-0.3.6/debian/changelog --- onak-0.3.6/debian/changelog +++ onak-0.3.6/debian/changelog @@ -1,3 +1,9 @@ +onak (0.3.6-2) stable; urgency=low + + * Always open the DB read/write. (Closes: #520117) + + -- Jonathan McDowell <[email protected]> Fri, 29 May 2009 13:59:03 +0100 + onak (0.3.6-1) unstable; urgency=low * New upstream release only in patch2: unchanged: --- onak-0.3.6.orig/keydb_db4.c +++ onak-0.3.6/keydb_db4.c @@ -398,9 +398,12 @@ if (ret == 0) { snprintf(buf, 1023, "keydb.%d.db", i); flags = DB_CREATE; +/* + * HACK: db4.6 reacts badly to us opening the DB readonly. if (readonly) { flags = DB_RDONLY; } + */ ret = dbconns[i]->open(dbconns[i], txn, buf,

