On 09.05.2010 16:40, wrote e-frog:
On 16.04.2010 19:23, wrote e-frog:
Hello Timo,
latest 2.0 hg version (changeset a6b050cc4a9a) segfaults when selecting a virtual mailbox.
The attached patch fixes this for me.
Hello Timo,
This crash still happens in beta6. Actually it crashes on 'getquotaroot <virtualmailbox>'. The patch posted earlier still works but there is probably a more elegant way to fix it ...
$ telnet localhost 143 Trying ::1... Connected to localhost. Escape character is '^]'.
- OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready. a login test pass a OK [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 QUOTA] Logged in b select "virtual/unread"
- FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
- OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
- 20 EXISTS
- 1 RECENT
- OK [UNSEEN 1] First unseen.
- OK [UIDVALIDITY 1275936581] UIDs valid
- OK [UIDNEXT 32] Predicted next UID
- OK [HIGHESTMODSEQ 1] Highest b OK [READ-WRITE] Select completed. c getquotaroot "virtual/unread" Connection closed by foreign host.
Here is a fresh backtrace for hg 7a02b84ad7f5:
#0 0xb74f6a56 in array_get_modifiable_i (array=0x8f77c44,
count_r=0xbfd6cb64) at ../../../src/lib/array.h:198
No locals.
#1 0xb74f7ac1 in virtual_config_free (mbox=0x8f77af0) at
virtual-config.c:403
bboxes = 0x8f77ce0
i = 3218525064
count = 3077681140
#2 0xb74fa033 in virtual_mailbox_free (box=0x8f77af0) at
virtual-storage.c:327
mbox = 0x8f77af0
#3 0xb7505947 in fts_mailbox_free (box=0x8f77af0) at fts-storage.c:73
fbox = 0x8f780d0
#4 0xb773ff74 in mailbox_free (_box=0xbfd6cc40) at mail-storage.c:638
box = 0x8f77af0
#5 0xb76a33b7 in cmd_getquotaroot (cmd=0x8c8cea0) at
imap-quota-plugin.c:116
client = 0x8c8ca98
quser = 0x8c876a0
ns = 0x8c83e20
box = 0x0
iter = 0x0
root = 0x0
mailbox = 0x8c8f758 "virtual/unread"
storage_name = 0x8c8f760 "unread"
name = 0x8c8ac00 "user"
quotaroot_reply = 0x8c632d8
quota_reply = 0x8c63388
#6 0x0805849d in client_command_input (cmd=0x8c8cea0) at imap-client.c:646
client = 0x8c8ca98
command = 0x805918d
__FUNCTION__ = "client_command_input"
#7 0x080586d0 in client_command_input (cmd=0x8c8cea0) at imap-client.c:696
client = 0x8c8ca98
command = 0x8c6be6c
__FUNCTION__ = "client_command_input"
#8 0x080587d3 in client_handle_next_command (client=0x8c8ca98,
remove_io_r=0xbfd6cd3e) at imap-client.c:737
size = 33
#9 0x08058851 in client_handle_input (client=0x8c8ca98) at
imap-client.c:749
_data_stack_cur_id = 3
ret = 8
remove_io = false
handled_commands = false
__FUNCTION__ = "client_handle_input"
#10 0x080589a8 in client_input (client=0x8c8ca98) at imap-client.c:788
cmd = 0x0
output = 0x8c863d4
bytes = 33
__FUNCTION__ = "client_input"
#11 0xb76f0d01 in io_loop_handler_run (ioloop=0x8c6b368) at
ioloop-epoll.c:212
ctx = 0x8c6b488
events = 0x8c6b4c8
event = 0x8c6b4c8
list = 0x8c83e78
io = 0x8c86430
tv = {tv_sec = 1799, tv_usec = 998763}
events_count = 6
t_id = 2
msecs = 1799999
ret = 1
i = 0
j = 0
call = true
#12 0xb76efa2e in io_loop_run (ioloop=0x8c6b368) at ioloop.c:350
No locals.
#13 0xb76d9994 in master_service_run (service=0x8c6b2b8,
callback=0x806343e
... the content of the dovecot-virtual:
$ cat /etc/dovecot/virtual/unread/dovecot-virtual * unseen
... and finally doveconf -n:
$ doveconf -n # 2.0.beta6 (7a02b84ad7f5): /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-22-generic-pae i686 Ubuntu 10.04 LTS auth_username_format = %Ln deliver_log_format = msgid=%m: from=%f: %$ dict { dictionary = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes mail_debug = yes mail_plugins = quota virtual namespace { hidden = no inbox = yes list = yes location = prefix = separator = / subscriptions = yes type = private } namespace { location = virtual:/etc/dovecot/virtual:INDEX=~/.maildir/control prefix = virtual/ separator = / subscriptions = no type = private } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { fts = squat fts_squat = partial=4 full=10 quota = dict:user::proxy::dictionary sieve = ~/.dovecot.sieve sieve_dir = ~/.sieve sieve_global_dir = /etc/dovecot/sieve-global/ } postmaster_address = postmaster@ubuntu-test protocols = imap lmtp managesieve quota_full_tempfail = yes sendmail_path = /usr/lib/sendmail service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } unix_listener auth-userdb { mode = 0666 } } service dict { unix_listener dict { mode = 0666 } } service imap-login { inet_listener imaps { port = 0 } } service imap-postlogin { executable = script-login rawlog -t /opt/bin/imap_wrapper.sh unix_listener imap-postlogin { mode = 0660 } } service imap { executable = imap imap-postlogin } service lmtp { unix_listener /var/spool/postfix/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } ssl = required ssl_cert =
Thanks, e-frog