We've been getting our tails kicked by our Cyrus implementation on
AIX, so we're looking into running Linux on our Power4 hardware. Our
preferred distribution is Gentoo. We are running cyrus-imapd 2.2.12[1].

During our testing, we noticed that every time master forked a daemon,
that our mailboxes.db (skiplist) would be rebuilt.  After much wailing
and gnashing of teeth, we traced this to the fact that
sizeof(time_t)=8. The cyrusdb_skiplist.c:myinit() specifically
writes/reads 4 bytes to/from skipstamp. This of course uses the upper
four bytes -- which are always zero -- thus the continual
reconstruction.  We're working around this by read/writing
sizeof(time_t) bytes for now.

Since Cyrus seems to work on other 64-bit platforms (sparc, amd64, et
cetera). We're thinking that the size of time_t changing is either a
recent thing, like gcc-3.4 or recent glibc, or an error.

Do any Cyrus implementers have an opinion? Do any of the developers
want to comment on a better way to fix this, or possibly other places
we might need to look?

Thanks for your time!


[1] This is a recent upgrade from the 2.1 branch for us, we'll have
some comments about running a mixed 2.{1,2} environment in the next
few weeks. Not worthy of bug reports, since you're not supposed to run
that way, but some funnies.

-- 
Stephen L. Ulmer                                      [EMAIL PROTECTED]
Senior Systems Programmer                         http://www.ulmer.org/
Computing and Networking Services                   VOX: (352) 392-2061
University of Florida                               FAX: (352) 392-9440

Attachment: pgp0QmASIiBoA.pgp
Description: PGP signature

----
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to