Re: Repeat recovers on databases

2009-06-19 Thread Michael Bacon
--On June 19, 2009 9:57:03 AM +1000 Bron Gondwana wrote: > On Thu, Jun 18, 2009 at 05:44:19PM -0400, Michael Bacon wrote: >> Another one stomped here. This time, it's a 32/64 bit issue. myinit in >> cyrusdb_skiplist.c assumes that type_t is 4 bytes long, and writes out >> that many from the cu

Re: Repeat recovers on databases

2009-06-19 Thread Michael Bacon
Right, right, I suppose changing database formats is somehow "bad..." :) This fix also works -- thanks. -Michael --On June 19, 2009 10:09:16 AM +1000 Bron Gondwana wrote: > On Thu, Jun 18, 2009 at 05:44:19PM -0400, Michael Bacon wrote: >> The fix for it is below. I will also open a bugzilla

Re: Repeat recovers on databases

2009-06-18 Thread Bron Gondwana
On Fri, 19 Jun 2009 06:47 +0200, "Gabor Gombas" wrote: > On Fri, Jun 19, 2009 at 10:09:16AM +1000, Bron Gondwana wrote: > > > @@ -192,6 +192,18 @@ struct db_list { > > static time_t global_recovery = 0; > > static struct db_list *open_db = NULL; > > > > +#define BIT32_MAX 4294967295U > > +

Re: Repeat recovers on databases

2009-06-18 Thread Gabor Gombas
On Fri, Jun 19, 2009 at 10:09:16AM +1000, Bron Gondwana wrote: > @@ -192,6 +192,18 @@ struct db_list { > static time_t global_recovery = 0; > static struct db_list *open_db = NULL; > > +#define BIT32_MAX 4294967295U > + > +#if UINT_MAX == BIT32_MAX > +typedef unsigned int bit32; > +#elif ULONG

Re: Repeat recovers on databases

2009-06-18 Thread Bron Gondwana
On Thu, Jun 18, 2009 at 05:44:19PM -0400, Michael Bacon wrote: > Another one stomped here. This time, it's a 32/64 bit issue. myinit in > cyrusdb_skiplist.c assumes that type_t is 4 bytes long, and writes out > that many from the current timestamp when creating $confdir/db/skipstamp. Actuall

Re: Repeat recovers on databases

2009-06-18 Thread Bron Gondwana
On Thu, Jun 18, 2009 at 05:44:19PM -0400, Michael Bacon wrote: > The fix for it is below. I will also open a bugzilla issue for this. I think this is actually a better fix that keeps things in the right type on to disk. Can you please test it on your platform. Thanks, Bron. >From 4adb3fb5d7f20

Re: Repeat recovers on databases

2009-06-18 Thread Bron Gondwana
On Thu, Jun 18, 2009 at 05:44:19PM -0400, Michael Bacon wrote: > Another one stomped here. This time, it's a 32/64 bit issue. myinit in > cyrusdb_skiplist.c assumes that type_t is 4 bytes long, and writes out > that many from the current timestamp when creating $confdir/db/skipstamp. > On 64

Re: Repeat recovers on databases

2009-06-18 Thread Michael Bacon
Another one stomped here. This time, it's a 32/64 bit issue. myinit in cyrusdb_skiplist.c assumes that type_t is 4 bytes long, and writes out that many from the current timestamp when creating $confdir/db/skipstamp. On 64-bit Solaris, time_t is 8 bytes (it's typedef'ed as a long). I'm forge