Are the database locking gremlins (referred to below) the same issue as the
locking lmtp problem that I and many others posted to the list about?

Did I miss something, or does using a flat file for the database rectify the
problem where users cannot move or delete messages until the Imap PID for that
user is killed?

-John

Lawrence Greenfield wrote:

> The database deadlocking gremlins usually cause an lmtpd or imapd
> process to crash while holding a database lock.  The number one thing
> is to find out which process crashed, why it crashed, and to stop it.
>
> The master should syslog whenever a process exiting abnormally
> ("grep signal /var/log/cyrus.log").
>
> We're using Berkeley db 3.1.17 on Solaris 2.7 and haven't had any
> problems since upgrading to Cyrus 2.1, though we use a flat text
> mailboxes file.  (But there's still the deliverdb/tls database).
>
> Michael, when you say you're going to compile a all cyrusdb_flat,
> which version are you talking about?  Making deliverdb use a flat text
> file would really hurt performance.
>
> To get things straight, by default:
>
> Cyrus 2.0.16 uses Berkeley db w/ txns for mailboxes.
>       It uses Berkeley db w/o txns for deliverdb (and has for a long time).
>       It uses flat text files for storing seen state.
>
> Cyrus 2.1 uses Berkeley db w/ txns for mailboxes.
>       It uses Berkeley db w/ txns for deliverdb.
>       It uses flat text files for storing seen state.
>       It uses Berkeley db w/ txns for storing TLS session information.
>
> We run Cyrus 2.1 with:
>    flat mailboxes
>    db3_nosync deliverdb
>    flat seen state
>    db3_nosync TLS
>
> I'm working on another reliable non-Sleepycat format for the mailboxes
> file since it's become apparent that no large volume site can use
> Sleepycat.  I don't see any reasonable alternatives for deliverdb or
> TLS information right now.
>
> Larry
>
>    Date: Tue, 15 Jan 2002 16:32:01 -0500
>    From: Michael Bacon <[EMAIL PROTECTED]>
>
>    You've apparently made the aquaintance of the database deadlocking
>    gremlins.  We've been running into this one since upgrading to 2.0.16, and
>    have yet to find a good solution for it.  Because we've finally gotten sick
>    of them, we're about to install a version of cyrus that was recompiled
>    using all cyrusdb_flat instead of cyrusdb_db3 to see if it helps.  In the
>    meantime, you can probably cut down on the frequency of the errors by
>    setting prefork=0.  I don't know why, but the preforks seem to make the
>    problem happen more frequently.
>
>    Michael Bacon
>    Duke University
>    [EMAIL PROTECTED]
>
>    --On Tuesday, January 15, 2002 15:52:59 -0500 Chris Peck <[EMAIL PROTECTED]>
>    wrote:
>
>    > Yesterday I started to see (for the first time since upgrading to
>    > cyrus-2.0.16 on Jan 4th) a lot of messages from sendmail which indicated:
>    > "Could not connect to socket /var/imap/socket/lmtp: Connection refused by
>    > localhost".  I checked and there were no lmtpd processes running, even
>    > though my cyrus.conf indicated a prefork=1 for them.  This, of course,
>    > really messes up our mail delivery, since mail is coming in, but, it's
>    > not getting delivered.  I stopped sendmail & cyrus master, then started
>    > cyrus master & sendmail & it started up fine.  About 4 hours later, the
>    > same thing happened. Once again I went through the restart process.  I
>    > then rebooted our system around 6:00 pm last night (students return
>    > today), and all was fine until around 1:30 this afternoon, when I started
>    > getting the same messages in syslog, but, there were about 30 lmtpd's
>    > running (over 100 sendmail's). This time I waited & after a few minutes
>    > lmtp would accept the connects, then reject them, etc.  Finally, I went
>    > through the restart process & it has been running fine since.
>    >
>    > Needless to say, I am very concerned about this.  It sounds like I'm
>    > running into a resource problem, but, I have checked swap, disk space,
>    > memory usage, etc, and all seems fine.  Is it possible that I need to
>    > increase a network resource?  Or maybe, tell master to increase his
>    > listen queue on startup?
>    >
>    > Here's the cyrus.conf file:
>    >#
>    ># cyrus.conf
>    >#
>    ># taken from prefork.conf as distributed with cyrus
>    ># 20011010 - initial create date <crpeck>
>    >#
>    >
>    > START {
>    >    # do not delete these entries!
>    >    mboxlist      cmd="ctl_mboxlist -r"
>    >    deliver       cmd="ctl_deliver -r"
>    >
>    >    # this is only necessary if using idled for IMAP IDLE
>    >    # idled               cmd="idled"
>    > }
>    >
>    ># UNIX sockets start with a slash and are put into /var/imap/sockets
>    > SERVICES {
>    >    # add or remove based on preferences
>    >    imap          cmd="imapd" listen="imap" prefork=5
>    >    imaps         cmd="imapd -s" listen="imaps" prefork=1
>    >    pop3          cmd="pop3d" listen="pop3" prefork=5
>    >    pop3s         cmd="pop3d -s" listen="pop3s" prefork=1
>    >    sieve         cmd="timsieved" listen="sieve" prefork=0
>    >
>    >    # at least one LMTP is required for delivery
>    >#  lmtp         cmd="lmtpd" listen="lmtp" prefork=0
>    >    lmtpunix      cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=1
>    > }
>    >
>    > EVENTS {
>    >    # this is required
>    >    checkpoint    cmd="ctl_mboxlist -c" period=30
>    >
>    >    # this is only necessary if using duplicate delivery suppression
>    >    delprune      cmd="ctl_deliver -E 3" period=1440
>    > }
>    >
>    > Any suggesations on where to start would be appreciated...
>    >
>    > -thanks
>    >   chris
>    >
>    >
>    > Chris Peck
>    > Manager of Unix Services
>    > Information Technology
>    > The College of William and Mary
>    > Williamsburg, VA 23187

Reply via email to