[Dovecot] problems with sieve under 2.0...

Perry E. Metzger perry at piermont.com
Wed Jul 7 22:54:46 EEST 2010


Timo Sirainen <tss at iki.fi> writes:

> On Wed, 2010-07-07 at 13:23 -0400, Perry E. Metzger wrote:
>> Jul  7 13:18:00 bellman dovecot: lda(perry): Panic: file index-transaction.c: line 70 (index_transaction_init): assertion failed: (box->opened)
>> Jul  7 13:18:00 bellman dovecot: lda(perry): Error: Raw backtrace: /usr/local/lib/dovecot/libdovecot.so.0 [0x7f55e07fedd2] -> /usr/local/lib/dovecot/libdovecot.so.0(i_syslog_fatal_handler+0x2b) [0x7f55e07fee7b] -> /usr/local/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f55e07ff1e3] -> /usr/local/lib/dovecot/libdovecot-storage.so.0 [0x7f55e0cbdc31] -> /usr/local/lib/dovecot/libdovecot-storage.so.0(index_transaction_begin+0x3f) [0x7f55e0cbdc7f] -> /usr/local/lib/dovecot/libdovecot-storage.so.0(mailbox_transaction_begin+0x13) [0x7f55e0c750d3] -> /usr/local/lib/dovecot/libdovecot-sieve.so.0 [0x7f55df800724] -> /usr/local/lib/dovecot/libdovecot-sieve.so.0(sieve_result_execute+0x173) [0x7f55df7f9183] -> /usr/local/lib/dovecot/libdovecot-sieve.so.0(sieve_execute+0x7d) [0x7f55df807b5d] -> /usr/local/lib/dovecot/lib90_sieve_plugin.so [0x7f55dfa3bbed] -> /usr/local/lib/dovecot/libdovecot-lda.so.0(mail_deliver+0x44) [0x7f55e0a41e84] -> /usr/local/libexec/dovecot/dovecot-lda(main+0x692) [0x402f72] -> /lib/libc.so.6(__libc_start_main+0xe6) [0x7f55e00831a6] -> /usr/local/libexec/dovecot/dovecot-lda [0x402819]
>
> I think this is related to the change I did recently. Or maybe it
> existed before that too.. I find the code a bit difficult to understand.
>
> So trans->box is allocated and then tried to be opened. If opening
> fails, the trans->box is still left there (because some other code still
> wants to use it). But nothing remembers that opening it failed, so I
> guess the code goes to act_store_execute() with trans->box != NULL, but
> also not opened. Then it fails when it tries to create a transaction.

A datapoint: I poked around, made a guess, added:

lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes

and the crash went away.

It may be that this was a very very bad way of the lda indicating that
it could not create the mailbox.

Perry
-- 
Perry E. Metzger		perry at piermont.com


More information about the dovecot mailing list