[Dovecot] Segfault on dovecot 2.0.1 w/ACLs
- PREAUTH [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID
ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND
UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1
CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH
LIST-STATUS ACL RIGHTS=texk] Logged in as slusarz 5 LIST (SUBSCRIBED) "" (*) RETURN (SUBSCRIBED) - LIST (\Subscribed) "." "INBOX" [...]
- LIST (\Subscribed) "." "Mileage Plus"
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff6d0cd61 in ?? () from /usr/lib/dovecot/modules/lib01_acl_plugin.so (gdb) bt full #0 0x00007ffff6d0cd61 in ?? () from /usr/lib/dovecot/modules/lib01_acl_plugin.so No symbol table info available. #1 0x00007ffff7b40eea in mailbox_list_iter_next () from /usr/lib/dovecot/libdovecot-storage.so.0 No symbol table info available. #2 0x000000000040b209 in ?? () No symbol table info available. #3 0x000000000040c030 in cmd_list_full () No symbol table info available. #4 0x000000000040f9dd in ?? () No symbol table info available. #5 0x000000000040fab2 in ?? () No symbol table info available. #6 0x000000000040fcfd in client_handle_input () No symbol table info available. #7 0x000000000041059f in client_input () No symbol table info available. #8 0x00007ffff78d8e85 in io_loop_handler_run () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #9 0x00007ffff78d80f8 in io_loop_run () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #10 0x00007ffff78c76f3 in master_service_run () from /usr/lib/dovecot/libdovecot.so.0 No symbol table info available. #11 0x0000000000418791 in main () No symbol table info available.
# 2.0.1: /etc/dovecot/dovecot.conf # OS: Linux 2.6.35-ARCH x86_64 plugin { acl = vfile quota = maildir:User quota quota_rule = *:storage=10485769 }
Can verify that disabling acl makes the segfault go away.
michael
On Tue, 2010-08-31 at 23:17 -0600, Michael M. Slusarz wrote:
5 LIST (SUBSCRIBED) "" (*) RETURN (SUBSCRIBED)
- LIST (\Subscribed) "." "INBOX" [...]
- LIST (\Subscribed) "." "Mileage Plus"
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff6d0cd61 in ?? () from /usr/lib/dovecot/modules/lib01_acl_plugin.so (gdb) bt full #0 0x00007ffff6d0cd61 in ?? () from /usr/lib/dovecot/modules/lib01_acl_plugin.so No symbol table info available.
I couldn't reproduce this. I guess it requires some specific config. Can you get bt with debug symbols and/or give full doveconf -n output?
Quoting Timo Sirainen tss@iki.fi:
On Tue, 2010-08-31 at 23:17 -0600, Michael M. Slusarz wrote:
5 LIST (SUBSCRIBED) "" (*) RETURN (SUBSCRIBED)
- LIST (\Subscribed) "." "INBOX" [...]
- LIST (\Subscribed) "." "Mileage Plus"
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff6d0cd61 in ?? () from
/usr/lib/dovecot/modules/lib01_acl_plugin.so (gdb) bt full #0 0x00007ffff6d0cd61 in ?? () from /usr/lib/dovecot/modules/lib01_acl_plugin.so No symbol table info available.I couldn't reproduce this. I guess it requires some specific config. Can you get bt with debug symbols and/or give full doveconf -n output?
I think this probably has something to do with the fact that my
namespaces were broken after I upgraded. These namespaces were broken
because doveconf didn't import my dovecot v1 config correctly.
With this input:
namespace private { separator = . prefix = location = maildir:~/Maildir inbox = yes }
namespace public { separator = . prefix = "#shared." location = maildir:~/mboxtesting }
And running: doveconf -n -c dovecot-1.conf > dovecot-2.conf (as found at http://wiki2.dovecot.org/Upgrading/2.0)
Results in the following:
# 2.0.1: dovecot-1.conf # OS: Linux 2.6.35-ARCH x86_64 namespace { location = maildir:~/mboxtesting prefix = #shared. separator = . type = public }
namespace { location = maildir:~/mboxtesting prefix = #shared. separator = . type = public }
And, thus, both namespaces have the same prefix:
- NAMESPACE (("" ".")) NIL (("" "."))
So doveconf wasn't quoting the prefix value correctly in the converted
output. Not sure if you want to put a check/warning somewhere if
namespaces have the same prefixes.
michael
On Wed, 2010-09-01 at 16:02 -0600, Michael M. Slusarz wrote:
prefix = #shared. .. So doveconf wasn't quoting the prefix value correctly in the converted
output.
Fixed: http://hg.dovecot.org/dovecot-2.0/rev/31387c9d5b88
Not sure if you want to put a check/warning somewhere if
namespaces have the same prefixes.
participants (2)
-
Michael M. Slusarz
-
Timo Sirainen