Scott Adkins adkinss at
Wed Aug 27 15:53:28 EDT 2003

--On Wednesday, August 27, 2003 3:21 PM -0400 "J. S. Diaz" 
<jsd at> wrote:

> Hi Scott, last month you posted a question about a cyrus imap install
> getting the "db4: unable to join" error and I was wondering if you
> resolved this or got any feedback on it?  I am getting the same error on
> a similar setup as you and I dont really see anything obvious.
> thanks,
> sebastian

Sure... I should post something about that... I talked to SleepyCat about
it and they suggested making sure that the threads library was being linked
into the IMAP server.  It used to be that when compiling db3 that the IMAP
server would automatically link in the threads library, probably because of
an rpath listed in the db3 shared library.  They must have changed something
with db4, since the threads library is no longer linked into applications if
they link against the db4 library.

As it turns out, linking with threads (I believe I simply included the
-pthread CC command line option to have that happen) caused the join errors
to go away.  I was still having some flakiness with db4 though...

In the end, we decided not to run with db4 at all.  This is how we currently
got things setup:

./configure --with-sasl=/usr/local/sasl-2.1.15 \
            --with-ucdsnmp=/usr/local/net-snmp-4.2.1 \
            --with-openssl=/usr/local/ssl \
            --with-egd-socket=/var/run/egd-pool \
            --enable-listext --with-lock=flock \
            --with-duplicate-db=skiplist \
            --with-tls-db=skiplist \

One thing to note is that we forced flock to be used, as that is the method
of locking that should be used in a Tru64 TruCluster system.

We decided to run without duplicate suppression for email delivery, but
keep the database so that sieve can still read and write to it.  Since only
sieve is using it, there should be a lot more reads than writes, as I think
only vacation support in sieve will be writing to the database.  Skiplist
is ideal for high reads/low writes.

Also, we ran just fine in the 2.0.x series without any kind of TLS caching,
so we decided to disable that as well.  We still specify skiplist above,
but imapd.conf disables its use.  With regards to pts-db, we don't have
support for it, so the configuration process disables it.

The imapd.conf file has the following lines in it:

  tls_session_timeout: 0
  duplicatesuppression: no

The first disables support for tls-db, and the latter disables support for
dup-db with respect to LMTP delivery.

If you have any questions, let me know.  The only issue we have to work out
yet is that the byte compiler for sieve is core dumping when uploading a new
script to the server via timsieved.  Oddly, it works on our test cluster
system, but in production it core dumps.  *shrugs*

      Scott W. Adkins      
   UNIX Systems Engineer                  mailto:adkinss at
        ICQ 7626282                 Work (740)593-9478 Fax (740)593-1944
     PGP Public Key available at
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 231 bytes
Desc: not available
Url :

More information about the Info-cyrus mailing list