[Dovecot] Crash: imap process, Dovecot 1.2.4, related to ACLs (backtrace included)
Andreas Ntaflos
daff at pseudoterminal.org
Fri Aug 28 03:46:43 EEST 2009
Hi,
I started experimenting with ACLs and found I could reliably and reproducibly
crash the IMAP process when trying to create a subfolder of a folder that has
has ACLs set. The folder is called "Sent" with an ACL of "owner lrwstipke". I
wanted to be able to have certain folders the the user cannot delete but where
subfolders can be created freely.
Relevant information follows and I hope the backtrace is useful (lots of
"value optimized out" entries). You can also find everything from below on
<https://daff.pseudoterminal.org/misc/dovecot/>.
Please tell me if I can provide more information.
dovecot -n:
===========
# 1.2.4: /usr/local/etc/dovecot.conf
# OS: Linux 2.6.26-2-686 i686 Debian 5.0.2
log_timestamp: %Y-%m-%d %H:%M:%S
protocols: managesieve imap imaps pop3 pop3s
login_dir: /usr/local/var/run/dovecot/login
login_executable(default): /usr/local/libexec/dovecot/imap-login
login_executable(imap): /usr/local/libexec/dovecot/imap-login
login_executable(pop3): /usr/local/libexec/dovecot/pop3-login
login_executable(managesieve): /usr/local/libexec/dovecot/managesieve-login
mail_access_groups: mail
mail_privileged_group: mail
mail_location: maildir:~/Maildir
mail_drop_priv_before_exec: yes
mail_executable(default): /usr/local/libexec/dovecot/imap
mail_executable(imap): /usr/local/libexec/dovecot/imap
mail_executable(pop3): /usr/local/libexec/dovecot/pop3
mail_executable(managesieve): /usr/local/libexec/dovecot/managesieve
mail_plugins(default): autocreate acl
mail_plugins(imap): autocreate acl
mail_plugins(pop3):
mail_plugins(managesieve):
mail_plugin_dir(default): /usr/local/lib/dovecot/imap
mail_plugin_dir(imap): /usr/local/lib/dovecot/imap
mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3
mail_plugin_dir(managesieve): /usr/local/lib/dovecot/managesieve
namespace:
type: public
separator: .
prefix: Public.
location:
maildir:/var/mail/public:CONTROL=~/Maildir/control/public:INDEX=~/Maildir/index/public
list: yes
namespace:
type: private
separator: .
prefix: Backup.
location: maildir:~/Maildir-backup
hidden: yes
list: no
namespace:
type: private
separator: .
inbox: yes
list: yes
subscriptions: yes
lda:
log_path:
info_log_path:
auth_socket_path: /var/run/dovecot/auth-master
postmaster_address: postmaster at mailtest0.rise-s.com
mail_plugins: sieve acl
auth default:
mechanisms: plain login
passdb:
driver: pam
passdb:
driver: sql
args: /etc/dovecot/dovecot-sql.conf
userdb:
driver: passwd
userdb:
driver: static
args: uid=vmail gid=vmail home=/var/vmail/%Ld/%Ln allow_all_users=yes
socket:
type: listen
client:
path: /var/spool/postfix/private/auth
mode: 432
user: postfix
group: postfix
master:
path: /var/run/dovecot/auth-master
mode: 384
user: vmail
plugin:
sieve: ~/.dovecot.sieve
sieve_dir: ~/sieve
sieve_global_path: /etc/dovecot/sieve/default.sieve
sieve_global_dir: /etc/dovecot/sieve/global/
sieve_before: /etc/dovecot/sieve/before/
autocreate: Trash
autocreate2: Drafts
autocreate3: Sent
autocreate4: INBOX.Spam
autosubscribe: Trash
autosubscribe2: Drafts
autosubscribe3: Sent
autosubscribe4: INBOX.Spam
acl: vfile:/etc/dovecot/acl
Log entry:
==========
Aug 28 01:08:01 mailtest0 dovecot: IMAP(andreas.ntaflos at example1.rise-s.com):
Panic: file acl-backend-vfile.c: line 1124 (acl_backend_vfile_object_update):
assertion failed: (!update->rights.global)
Aug 28 01:08:01 mailtest0 dovecot: IMAP(andreas.ntaflos at example1.rise-s.com):
Raw backtrace: imap [0x80f1ec1] -> imap [0x80f1f42] -> imap [0x80f18c9] ->
/usr/local/lib/dovecot/imap/lib01_acl_plugin.so [0xb7dddcf6] ->
/usr/local/lib/dovecot/imap/lib01_acl_plugin.so(acl_object_update+0x18)
[0xb7ddb1a8] -> /usr/local/lib/dovecot/imap/lib01_acl_plugin.so [0xb7de2ac7] -
> imap(cmd_create+0xf9) [0x80618d9] -> imap [0x80679fc] -> imap [0x8067a99] ->
imap(client_handle_input+0x2d) [0x8067c0d] -> imap(client_input+0x5f)
[0x806856f] -> imap(io_loop_handler_run+0xe0) [0x80fac40] ->
imap(io_loop_run+0x20) [0x80fa0b0] -> imap(main+0x5ea) [0x807104a] ->
/lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7e15455] -> imap
[0x8060291]
Aug 28 01:08:01 mailtest0 dovecot: dovecot: child 1588 (imap) killed with
signal 6 (core dumped)
Backtrace:
==========
#0 0xb7f70424 in __kernel_vsyscall ()
No symbol table info available.
#1 0xb7e2a640 in raise () from /lib/i686/cmov/libc.so.6
No symbol table info available.
#2 0xb7e2c018 in abort () from /lib/i686/cmov/libc.so.6
No symbol table info available.
#3 0x080f1ed5 in default_fatal_finish (type=<value optimized out>, status=0)
at failures.c:160
backtrace = 0x93e5628 "imap [0x80f1ec1] -> imap [0x80f1f42] -> imap
[0x80f18c9] -> /usr/local/lib/dovecot/imap/lib01_acl_plugin.so [0xb7dddcf6] ->
/usr/local/lib/dovecot/imap/lib01_acl_plugin.so(acl_object_update+0x18)
[0xb"...
#4 0x080f1f42 in i_internal_fatal_handler (type=LOG_TYPE_PANIC, status=0,
fmt=0xb7de3094 "file %s: line %d (%s): assertion failed: (%s)",
args=0xbff8b9c4 "�3d\004")
at failures.c:440
No locals.
#5 0x080f18c9 in i_panic (format=0xb7de3094 "file %s: line %d (%s): assertion
failed: (%s)") at failures.c:207
No locals.
#6 0xb7dddcf6 in acl_backend_vfile_object_update (_aclobj=0x942c270,
update=0xbff8bad0) at acl-backend-vfile.c:1124
dotlock = <value optimized out>
path = <value optimized out>
i = <value optimized out>
fd = <value optimized out>
changed = <value optimized out>
__PRETTY_FUNCTION__ = "acl_backend_vfile_object_update"
#7 0xb7ddb1a8 in acl_object_update (aclobj=0x942c270, update=0xbff8bad0) at
acl-api.c:122
No locals.
#8 0xb7de2ac7 in acl_mailbox_create (storage=0x93f2c88, name=0x93f9d98
"Sent.2008", directory=false) at acl-storage.c:160
astorage = <value optimized out>
ret = <value optimized out>
#9 0x080618d9 in cmd_create (cmd=0x93f4ce0) at cmd-create.c:42
ns = <value optimized out>
mailbox = 0x93f9d98 "Sent.2008"
full_mailbox = 0x93f9d98 "Sent.2008"
directory = <value optimized out>
#10 0x080679fc in client_command_input (cmd=0x93f4ce0) at client.c:611
client = (struct client *) 0x93f48a0
command = <value optimized out>
__PRETTY_FUNCTION__ = "client_command_input"
#11 0x08067a99 in client_command_input (cmd=0x93f4ce0) at client.c:660
client = (struct client *) 0x93f48a0
command = <value optimized out>
__PRETTY_FUNCTION__ = "client_command_input"
#12 0x08067c0d in client_handle_input (client=0x93f48a0) at client.c:701
_data_stack_cur_id = 3
ret = false
remove_io = <value optimized out>
handled_commands = false
__PRETTY_FUNCTION__ = "client_handle_input"
#13 0x0806856f in client_input (client=0x93f48a0) at client.c:752
cmd = <value optimized out>
output = (struct ostream *) 0x93f4a54
bytes = <value optimized out>
__PRETTY_FUNCTION__ = "client_input"
#14 0x080fac40 in io_loop_handler_run (ioloop=0x93ed9b0) at ioloop-epoll.c:208
ctx = (struct ioloop_handler_context *) 0x93edab8
event = (const struct epoll_event *) 0x93edaf8
list = (struct io_list *) 0x93f4ab0
io = (struct io_file *) 0x942c888
tv = {tv_sec = 1799, tv_usec = 999357}
t_id = 2
msecs = <value optimized out>
ret = 1
i = 0
j = 0
call = <value optimized out>
#15 0x080fa0b0 in io_loop_run (ioloop=0x93ed9b0) at ioloop.c:335
No locals.
#16 0x0807104a in main (argc=Cannot access memory at address 0x634
) at main.c:327
No locals.
More information about the dovecot
mailing list