[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cyrus-info
Subject:    migrating from dovecot to cyrus
From:       patrick () patricktsang ! net (Patrick T !  Tsang)
Date:       2006-06-28 0:35:23
Message-ID: 017201c69a6c$42b15060$6401a8c0 () patrick
[Download RAW message or body]


I always say Cyrus is the best open IMAP server that I have ever used.
It implements openldap to ease most of my system setup problems.

You may consider using imapsync to re-match the imap mail flags and 
re-subscribe the mail folders.

Patrick



----- Original Message ----- 
From: "Marten Lehmann" <lehmann@cnm.de>
Cc: <info-cyrus@lists.andrew.cmu.edu>
Sent: Tuesday, June 27, 2006 8:49 PM
Subject: Re: migrating from dovecot to cyrus


> Hello,
> 
> > Just out of curiosity, what kind of performance problems at what load do 
> > you have. It was claimed that dovecot is really fast and we plan to 
> > evaluate it in the near future for some projects so any hints where to 
> > dig are welcome.
> 
> the difference is, that cyrus handles a lot of things while the mail is 
> being delivered, which saves a lot of time. We had to split the incoming 
> mailserver (smtp) and the pop3/imap server because one server couldn't 
> handle the load any longer.
> 
> Example delivery with exim+dovecot:
> To check the quota, exim has to count all messages (files) in all 
> directories in the maildir (very timeconsuming with NFS mounted maildirs).
> Then the message is delivered to maildir/tmp and moved to maildir/new 
> (another two NFS operations).
> When a user is connecting to IMAP now, dovecot has to look through all 
> directories within the maildir of files or gone, new ones appeared and 
> build the cache and index accordingly. This is done locally on the disk, 
> so it is a bit faster, but it is time consuming on big maildirs anyway.
> Now dovecot can start serving the new message.
> 
> Example delivery with exim+cyrus:
> Exim sends to message to cyrus via unix socket or tcp socket. The rest is 
> done locally on the cyrus backend server:
> Checking for quota
> Updating indizes
> Possibly notifying an existing imap-connection about the new message
> So the delivery is very fast, because cyrus doesn't have to look through 
> all messages to check the quota: It can be looked up in the index.
> When the user is connecting to IMAP, the index is already prepared, cyrus 
> doesn't have to look for changes in the maildir at this stage so it can 
> serve the new message immediately.
> 
> In small setups with everything on one server, exim (or any other mta) + 
> dovecot should work fine, while cyrus is maybe a bit more complicated to 
> setup. But with bigger setups (or expected growth in the future) cyrus and 
> its option of cyrus murder should scale better.
> 
> Regards
> Marten
> ----
> 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
> 

> From =?KOI8-R?Q?=E4=C5=CA=D4=C5=D2_=E1=CC=C5=CB=D3=C1=CE=C4=D2_=F7=C1?=  .org  Wed \
> Jun 28 02:05:32 2006
From: =?KOI8-R?Q?=E4=C5=CA=D4=C5=D2_=E1=CC=C5=CB=D3=C1=CE=C4=D2_=F7=C1?= \
                (=?KOI8-R?Q?=E4=C5=CA=D4=C5=D2_=E1=CC=C5=CB=D3=C1=CE=C4=D2_=F7=C1?=)
Date: Wed Jun 28 02:05:47 2006
Subject: Cyrus IMAP core dump with signal 6
Message-ID: <44A21C2C.1090200@komi.mts.ru>

Hi,

We are running Cyrus-IMAP 2.2.13 with Cyrus-SASL 2.1.22 and Berkeley DB
4.4.20 on Solaris 9. Periodically imapd core dump with signal 6:

(gdb) bt
#0  0xffffffff7cfa88ec in _libc_kill () from /usr/lib/64/libc.so.1
#1  0xffffffff7cf3e3c0 in abort () from /usr/lib/64/libc.so.1
#2  0xffffffff7cf3e6c4 in _assert () from /usr/lib/64/libc.so.1
#3  0x00000001000679fc in mycommit (db=0x1002b3e90, tid=0x100294810)
    at cyrusdb_skiplist.c:1366
#4  0x0000000100056514 in seen_unlock (seendb=0x100214b90) at seen_db.c:536
#5  0x0000000100027b0c in index_checkseen (mailbox=<value optimized out>,
    quiet=2117632, usinguid=0, oldexists=56) at index.c:720
#6  0x0000000100028618 in index_check (mailbox=0x1002046e0, usinguid=0,
    checkseen=1) at index.c:410
#7  0x000000010000f5f8 in cmd_idle (tag=0x1002ad2f0 "2314") at imapd.c:2207
#8  0x0000000100021200 in cmdloop () at imapd.c:1166
#9  0x0000000100023fa8 in service_main (argc=<value optimized out>,
    argv=0x1002108e0, envp=<value optimized out>) at imapd.c:691
#10 0x000000010000b6a4 in main (argc=<value optimized out>,
    argv=<value optimized out>, envp=0xffffffff7ffffc70) at service.c:533

cyrusdb_skiplist.c:1366

1360  /* xxx consider unlocking the database here: the transaction isn't
1361     yet durable but the file is in a form that is consistent for
1362     other transactions to use. releasing the lock here would give
1363     ACI properties. */
1364
1365  /* write a commit record */
1366  assert(tid->syncfd != -1);

build options:

$ ./configure --prefix=/usr/local --libexecdir=/usr/local/sbin
--sysconfdir=/usr/local/etc/cyrus --enable-nntp --enable-listext
--enable-netscapehack --enable-gssapi=/usr/local
--with-extraident=MTS-NW --with-service-path=/usr/local/sbin
--with-cyrus-user=cyrus --with-cyrus-group=cyrus --with-auth=unix
--with-bdb=/usr/local --with-openssl=/usr/local
--with-pidfile=/var/run/cyrus.pid --with-idle=poll --with-com_err=
--with-syslogfacility=LOCAL6 --with-gss_impl=heimdal
--with-sasl=/usr/local --with-perl=/usr/local/bin/perl
--with-libwrap=/usr/local --with-snmp=/usr/local

$ file imapd
imap/imapd: ELF 64-bit MSB executable, SPARC V9, version 1 (SYSV),
dynamically linked (uses shared libs), not stripped

$ ldd imapd
        libsasl2.so.2 =>         /usr/local/lib/libsasl2.so.2
        libgssapi.so.4 =>        /usr/local/lib/libgssapi.so.4
        libkrb5.so.17 =>         /usr/local/lib/libkrb5.so.17
        libasn1.so.6 =>  /usr/local/lib/libasn1.so.6
        libroken.so.16 =>        /usr/local/lib/libroken.so.16
        libcom_err.so.1 =>       /usr/local/lib/libcom_err.so.1
        libresolv.so.2 =>        /usr/lib/64/libresolv.so.2
        libdl.so.1 =>    /usr/lib/64/libdl.so.1
        libsocket.so.1 =>        /usr/lib/64/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/64/libnsl.so.1
        libdb.so.4 =>    /usr/local/lib/libdb.so.4
        libssl.so.3 =>   /usr/local/lib/libssl.so.3
        libcrypto.so.3 =>        /usr/local/lib/libcrypto.so.3
        librt.so.1 =>    /usr/lib/64/librt.so.1
        libwrap.so.7 =>  /usr/local/lib/libwrap.so.7
        libc.so.1 =>     /usr/lib/64/libc.so.1
        libdoor.so.1 =>  /usr/lib/64/libdoor.so.1
        libmp.so.2 =>    /usr/lib/64/libmp.so.2
        libz.so.1 =>     /usr/local/lib/libz.so.1
        libaio.so.1 =>   /usr/lib/64/libaio.so.1
        libmd5.so.1 =>   /usr/lib/64/libmd5.so.1
        /usr/platform/SUNW,UltraAX-i2/lib/sparcv9/libc_psr.so.1
        /usr/platform/SUNW,UltraAX-i2/lib/sparcv9/libmd5_psr.so.1

Who can help me ?

Thanks a lot!

-- 
Alex Deiter


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic