Problem starting cyrus imap in FC6 Was:[Re: Newbie needs help]

Simon Matter simon.matter at invoca.ch
Wed Jan 3 05:06:17 EST 2007


> Am Dienstag, 2. Januar 2007 23:01 schrieb Andreas Winkelmann:
>> On Tuesday 02 January 2007 22:34, Uwe Kiewel wrote:
>> > > > I ran into a problem with an postfix-mysql-cyrus installation and
>> i
>> > > > don't know what to do.
>> > > >
>> > > > I used the postfix-cyrus howto to set up the server. The postfix,
>> the
>> > > > saslauthd and mysql server started without any problem, but when i
>> > > > tried to start cyrus i got the following error message:
>> > > >
>> > > > cyrus-imapd Datenbanken importieren:
>> > > > [FEHLGESCHLAGEN]
>> > > >
>> > > > It is a german error message and it means:
>> > > >
>> > > > import of cyrus imapd databases:         terminated
>> > >
>> > > Hmm, this is a Script from FC/RH. I don't know what it does, when it
>> > > tries to "import Databases".
>> >
>> > The FC Start/Stop scripts do as follow (only importent parts of the
>> > script):
>> >
>> > Start:
>> >
>> >       $RUNUSER - cyrus -c "umask 166 ;
>> > /usr/lib/cyrus-imapd/cvt_cyrusdb_all
>> >
>> > > ${CONFIGDIRECTORY}/rpm/db_import.log 2>&1" < /dev/null
>> >
>> >       RETVAL=$?
>> >       if [ $RETVAL -eq 0 ]; then
>> >         success $"$BASENAME importing databases"
>> >       else
>> >         failure $"$BASENAME error importing databases, check
>> > ${CONFIGDIRECTORY}/rpm/db_import.log"
>> >       fi
>>
>> Hmm, this is english and the "check
>> ${CONFIGDIRECTORY}/rpm/db_import.log"
>> is missing in the German output. I hope this is the same Version.
>
> Carsten wrote, he use FC6. The post above is from my FC6 system, only my
> system langange is english.
>
>> cvt_cyrusdb_all is not a Cyrus-Imapd Command. I would guess, this is a
>> RH/FC Extension. Check what it does. It seems to fail.
>
> You're right. The head of the file:
>
> # This script converts all db files of a cyrus installation from their
> # existing format to the format required by the current installation.
> # The format of current db files is determined using the 'file' command
> # with a magic file added for skiplist db, the new format is read from
> # a config file usually in /usr/share/cyrus-imapd/rpm/db.cfg, which is
> # created while compiling. After converting, the db.cfg file is
> # copied to a cache file usually at /var/lib/imap/rpm/db.cfg.cache to
> # allow bypassing this converting script if both files are identical.
> # While this is a bit less secure, it may be useful on big server where
> # db converting is done automatically.
> #
> # This script can safely be run as root, it will reexec itself as user
> # cyrus if needed.
> #
> # author: Simon Matter, Invoca Systems <simon.matter at invoca.ch>
>
> This is my log for shutting down cyrus:
>
> cvt_cyrusdb_all version: 1.2.1
> db_checkpoint: checkpoint begin: Tue Jan  2 21:15:31 2007
>
> db_checkpoint: checkpoint complete: Tue Jan  2 21:15:31 2007
>
> Finding last valid log LSN: file: 1 offset 4023460
> Recovery starting from [1][4022834]
> Recovery complete at Tue Jan  2 21:15:33 2007
> Maximum transaction ID 80002795 Recovery checkpoint [1][4023990]
> Converting from /var/lib/imap/deliver.db (berkeley)
> to /var/lib/imap/deliver.db.skiplist (skiplist)
> Converting from /var/lib/imap/tls_sessions.db (berkeley)
> to /var/lib/imap/tls_sessions.db.skiplist (skiplist)
> removed `/var/lib/imap/db/log.0000000001'
> removed `/var/lib/imap/db/__db.001'
> removed `/var/lib/imap/db/__db.002'
> removed `/var/lib/imap/db/__db.003'
> removed `/var/lib/imap/db/__db.004'
> removed `/var/lib/imap/db/__db.005'
>
> And for starting up cyrus:
> cvt_cyrusdb_all version: 1.2.1
> db_checkpoint: open: No such file or directory
> Converting from /var/lib/imap/deliver.db.skiplist (skiplist)
> to /var/lib/imap/deliver.db (berkeley)
> Converting from /var/lib/imap/tls_sessions.db.skiplist (skiplist)
> to /var/lib/imap/tls_sessions.db (berkeley)
>
> I could not imagine, why FC6 runs the script on every start up/shut down
> cycle. Strange.

The reason behind it is very simple, if you do a system upgrade and
suddenly have another BDB version on your box, or you move the mailstore
from an older cyrus-imapd server to a newer one, you'll have the BDB-fun
discussed on this list very frequently (it's not only with cyrus-imapd,
just ask those openldap or subversion users...). Now, the Invoca rpm
package solved this by bringing the cyrus-imapd messagestore to a portable
state whenever it's not running - and by switching all berkeley databases
to skiplist by default, those problems are gone for most users anyway.
Another benefit is that you can stop cyrus-imapd, change the database
configurations and start it up again. All will convert automagically.

However, you are not using the Invoca rpm so I don't know exactly how it
works in your situation (the packages shipped by RedHat/Fedora are based
on older and modified versions of the Invoca rpm).

Regards,
Simon


More information about the Info-cyrus mailing list