[Dovecot] Segfault in dovecot 1.2rc2 with quota + public namespace enabled
Markus Werner
markiwer at googlemail.com
Tue Apr 7 16:53:56 EEST 2009
Hi,
I have configured a public namespace ("#Shared"). Since dovecot 1.2rc2
(1.1.11 worked fine) I get a segfault, if I try to access a folder
under this namespace when quota plugin is enabled. When the quota
plugin is disabled, accessing those folders works.
$ dovecot -n
# 1.2.rc2: /opt/dovecot/etc/dovecot.conf
# OS: Linux 2.6.26-1-686 i686 Debian 5.0
base_dir: /var/run/dovecot
protocols: imap pop3
listen: 127.0.0.1,192.168.128.151
ssl_listen: 192.168.128.151
ssl_ca_file: /opt/dovecot/etc/certs/cacert.pem
ssl_cert_file: /opt/dovecot/etc/certs/asterixCert.pem
ssl_key_file: /opt/dovecot/etc/certs/asterixKey.pem
ssl_parameters_regenerate: 0
ssl_cipher_list: ALL:!LOW:!SSLv2
disable_plaintext_auth: no
login_dir: /var/run/dovecot/login
login_executable(default): /opt/dovecot/libexec/dovecot/imap-login
login_executable(imap): /opt/dovecot/libexec/dovecot/imap-login
login_executable(pop3): /opt/dovecot/libexec/dovecot/pop3-login
login_user: dovecotl
login_process_per_connection: no
login_processes_count: 1
login_max_processes_count: 3
max_mail_processes: 100
mail_max_userip_connections: 8
first_valid_uid: 2000
last_valid_uid: 2000
first_valid_gid: 2000
last_valid_gid: 2000
mail_access_groups: dovecot
mail_uid: 2000
mail_gid: 2000
mail_location: maildir:~/Maildir
mail_debug(default): yes
mail_debug(imap): yes
mail_debug(pop3): no
mail_executable(default): /opt/dovecot/libexec/dovecot/imap
mail_executable(imap): /opt/dovecot/libexec/dovecot/imap
mail_executable(pop3): /opt/dovecot/libexec/dovecot/pop3
mail_plugins(default): quota imap_quota acl imap_acl fts fts_squat
mail_plugins(imap): quota imap_quota acl imap_acl fts fts_squat
mail_plugins(pop3):
mail_plugin_dir(default): /opt/dovecot/lib/dovecot/imap
mail_plugin_dir(imap): /opt/dovecot/lib/dovecot/imap
mail_plugin_dir(pop3): /opt/dovecot/lib/dovecot/pop3
pop3_no_flag_updates(default): no
pop3_no_flag_updates(imap): no
pop3_no_flag_updates(pop3): yes
namespace:
type: private
separator: /
prefix: INBOX/
inbox: yes
list: yes
subscriptions: yes
namespace:
type: public
separator: /
prefix: #Shared/
location: maildir:/var/spool/dovecot/sharedfolders:INDEX=~/Maildir/index/public:CONTROL=~/Maildir/control/public
list: yes
subscriptions: yes
namespace:
type: shared
separator: /
prefix: #User/%%u/
location: maildir:%%h/Maildir:INDEX=~/Maildir/index/shared/%%u
list: yes
auth default:
mechanisms: plain login
user: dovecota
worker_max_count: 3
passdb:
driver: passwd-file
args: /opt/dovecot/etc/passwd
userdb:
driver: passwd-file
args: /opt/dovecot/etc/passwd
socket:
type: listen
client:
path: /var/run/dovecot/auth-client
mode: 432
user: postfix
group: postfix
master:
path: /var/run/dovecot/auth-master
mode: 432
user: dovecota
group: dovecot
plugin:
sieve: ~/.dovecot/.dovecot.sieve
acl: vfile:/opt/dovecot/etc/dovecot-acls
acl_shared_dict: file:/var/lib/dovecot/shared-mailboxes.db
acl_anyone: allow
quota: dict:user::file:%h/Maildir/dovecot-quota
quota_rule: *:storage=10G:messages=500000
fts: squat
fts_squat: partial=4 full=10
$ gdb /opt/dovecot/libexec/dovecot/imap /var/spool/dovecot/users/markus/core
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
warning: Can't read pathname for load map: Input/output error.
Reading symbols from /lib/i686/cmov/libdl.so.2...done.
Loaded symbols for /lib/i686/cmov/libdl.so.2
Reading symbols from /lib/i686/cmov/libc.so.6...done.
Loaded symbols for /lib/i686/cmov/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /opt/dovecot/lib/dovecot/imap/lib01_acl_plugin.so...done.
Loaded symbols for /opt/dovecot/lib/dovecot/imap/lib01_acl_plugin.so
Reading symbols from
/opt/dovecot/lib/dovecot/imap/lib02_imap_acl_plugin.so...done.
Loaded symbols for /opt/dovecot/lib/dovecot/imap/lib02_imap_acl_plugin.so
Reading symbols from /opt/dovecot/lib/dovecot/imap/lib10_quota_plugin.so...done.
Loaded symbols for /opt/dovecot/lib/dovecot/imap/lib10_quota_plugin.so
Reading symbols from
/opt/dovecot/lib/dovecot/imap/lib11_imap_quota_plugin.so...done.
Loaded symbols for /opt/dovecot/lib/dovecot/imap/lib11_imap_quota_plugin.so
Reading symbols from /opt/dovecot/lib/dovecot/imap/lib20_fts_plugin.so...done.
Loaded symbols for /opt/dovecot/lib/dovecot/imap/lib20_fts_plugin.so
Reading symbols from
/opt/dovecot/lib/dovecot/imap/lib21_fts_squat_plugin.so...done.
Loaded symbols for /opt/dovecot/lib/dovecot/imap/lib21_fts_squat_plugin.so
Reading symbols from /lib/i686/cmov/libnss_compat.so.2...done.
Loaded symbols for /lib/i686/cmov/libnss_compat.so.2
Reading symbols from /lib/i686/cmov/libnsl.so.1...done.
Loaded symbols for /lib/i686/cmov/libnsl.so.1
Reading symbols from /lib/i686/cmov/libnss_nis.so.2...done.
Loaded symbols for /lib/i686/cmov/libnss_nis.so.2
Reading symbols from /lib/i686/cmov/libnss_files.so.2...done.
Loaded symbols for /lib/i686/cmov/libnss_files.so.2
Core was generated by `imap'.
Program terminated with signal 11, Segmentation fault.
[New process 31957]
#0 0x080ec1e2 in array_idx_modifiable_i (array=0x18, idx=0) at array.c:10
10 pos = idx * array->element_size;
(gdb) bt full
#0 0x080ec1e2 in array_idx_modifiable_i (array=0x18, idx=0) at array.c:10
pos = 0
#1 0xb7dbf88a in quota_get_mail_user_quota (user=0x0) at quota-storage.c:482
No locals.
#2 0xb7db98d8 in quota_transaction_begin (box=0x9771440) at quota.c:739
user = (struct mail_user *) 0x0
#3 0xb7dbfdee in quota_mailbox_transaction_begin (box=0x9771440,
flags=MAILBOX_TRANSACTION_FLAG_HIDE) at quota-storage.c:87
t = (struct mailbox_transaction_context *) 0x977bac0
qt = <value optimized out>
#4 0xb7daf55e in fts_transaction_begin (box=0x9771440,
flags=MAILBOX_TRANSACTION_FLAG_HIDE) at fts-storage.c:937
fbox = (struct fts_mailbox *) 0x978ac80
t = <value optimized out>
#5 0x080b38ae in mailbox_transaction_begin (box=0x9771440,
flags=MAILBOX_TRANSACTION_FLAG_HIDE) at mail-storage.c:787
trans = (struct mailbox_transaction_context *) 0x18
#6 0x08069f2b in imap_fetch_begin (ctx=0x9769d18) at imap-fetch.c:349
No locals.
#7 0x08061bb0 in cmd_fetch (cmd=0x9769bd8) at cmd-fetch.c:226
client = <value optimized out>
ctx = (struct imap_fetch_context *) 0x9769d18
args = (const struct imap_arg *) 0x976ec58
next_arg = (const struct imap_arg *) 0x18
search_args = (struct mail_search_args *) 0x9773ba8
messageset = <value optimized out>
ret = <value optimized out>
#8 0x0806700c in client_command_input (cmd=0x9769bd8) at client.c:603
client = (struct client *) 0x9769948
command = <value optimized out>
__PRETTY_FUNCTION__ = "client_command_input"
#9 0x080670a9 in client_command_input (cmd=0x9769bd8) at client.c:652
client = (struct client *) 0x9769948
command = <value optimized out>
__PRETTY_FUNCTION__ = "client_command_input"
#10 0x080676ed in client_handle_input (client=0x9769948) at client.c:693
_data_stack_cur_id = 3
ret = <value optimized out>
remove_io = <value optimized out>
handled_commands = false
#11 0x08067ba3 in client_input (client=0x9769948) at client.c:748
cmd = <value optimized out>
output = (struct ostream *) 0x9769afc
bytes = <value optimized out>
__PRETTY_FUNCTION__ = "client_input"
#12 0x080f73f0 in io_loop_handler_run (ioloop=0x9762ae8) at ioloop-epoll.c:208
ctx = (struct ioloop_handler_context *) 0x9762bf0
event = (const struct epoll_event *) 0x9762c30
list = (struct io_list *) 0x9769b80
io = (struct io_file *) 0x9769b58
tv = {tv_sec = 1, tv_usec = 729686}
t_id = 2
msecs = <value optimized out>
ret = 1
i = 0
j = 0
call = <value optimized out>
#13 0x080f6880 in io_loop_run (ioloop=0x9762ae8) at ioloop.c:338
No locals.
#14 0x080704c5 in main (argc=Cannot access memory at address 0x0
) at main.c:320
No locals.
--
Markus
More information about the dovecot
mailing list