[Dovecot] dovecot 2.04 broke folder sharing
Hi Timo, upgrading from 2.03 to 2.04 broke folder sharing at my setup double checked this with tests reverting versions etc setting acl and subcriptions are working with 2.04, but in difference to 2.03 no shared subfolder is created at acl/subscription set time so subscribing afterwards fail with ignore message by bad subscription the mails store is on drbd with ocfs2 i didnt change any other config parameter during the tests so some patch must have changed folder sharing behavior from 2.03 to 2.04 speculate something with default hardlinks etc? any idea ?
Best Regards
MfG Robert Schetterer
Germany/Munich/Bavaria
Am 30.09.2010 10:32, schrieb Robert Schetterer:
Hi Timo, upgrading from 2.03 to 2.04 broke folder sharing at my setup double checked this with tests reverting versions etc setting acl and subcriptions are working with 2.04, but in difference to 2.03 no shared subfolder is created at acl/subscription set time so subscribing afterwards fail with ignore message by bad subscription the mails store is on drbd with ocfs2 i didnt change any other config parameter during the tests so some patch must have changed folder sharing behavior from 2.03 to 2.04 speculate something with default hardlinks etc? any idea ?
i dont know if its exactly the reason but dict seems involved to this
Panic: dict-client: Only one iteration supported Sep 30 12:42:02 mail01 dovecot: imap(postmaster@schetterer.name): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x3562a) [0x7f8c4b32862a] -> /usr/lib/dovecot/libdovecot.so.0(+0x3567a) [0x7f8c4b32867a] -> /usr/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f8c4b305476] -> /usr/lib/dovecot/libdovecot.so.0(+0x18f85) [0x7f8c4b30bf85] -> /usr/lib/dovecot/libdovecot.so.0(dict_iterate_init+0x19) [0x7f8c4b30a7e9] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(acl_lookup_dict_rebuild+0x39b) [0x7f8c4a740c1b] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(acl_backend_vfile_acllist_rebuild+0x484) [0x7f8c4a73f4d4] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(acl_backend_vfile_acllist_refresh+0x233) [0x7f8c4a73f873] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(acl_backend_vfile_acllist_verify+0x55) [0x7f8c4a73fa05] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(+0x77a8) [0x7f8c4a73e7a8] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(acl_backend_get_default_rights+0x1e) [0x7f8c4a73c55e] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(+0xbea4) [0x7f8c4a742ea4] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_list_iter_init+0x19) [0x7f8c4b592c19] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(acl_shared_namespaces_add+0x24e) [0x7f8c4a74328e] -> /usr/lib/dovecot/modules/lib01_acl_plugin.so(+0xb270) [0x7f8c4a742270] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_list_iter_init+0x19) [0x7f8c4b592c19] -> dovecot/imap postmaster@schetterer.name 88.217.137.181 list [0x40bafe] -> dovecot/imap postmaster@schetterer.name 88.217.137.181 list [0x40c7a4] -> dovecot/imap postmaster@schetterer.name 88.217.137.181 list [0x40cc9e] -> dovecot/imap postmaster@schetterer.name 88.217.137.181 list [0x41035d] -> dovecot/imap postmaster@schetterer.name 88.217.137.181 list [0x41043d] -> dovecot/imap postmaster@schetterer.name 88.217.137.181 list [0x410665] -> dovecot/imap postmaster@schetterer.name 88.217.137.181 list [0x410f8f] -> /usr/
-- Best Regards
MfG Robert Schetterer
Germany/Munich/Bavaria
On Thu, 2010-09-30 at 12:45 +0200, Robert Schetterer wrote:
Panic: dict-client: Only one iteration supported /usr/lib/dovecot/modules/lib01_acl_plugin.so(acl_lookup_dict_rebuild+0x39b)
This should help: http://hg.dovecot.org/dovecot-2.0/rev/ecc0bc80288c
Am 30.09.2010 21:29, schrieb Timo Sirainen:
On Thu, 2010-09-30 at 12:45 +0200, Robert Schetterer wrote:
Panic: dict-client: Only one iteration supported /usr/lib/dovecot/modules/lib01_acl_plugin.so(acl_lookup_dict_rebuild+0x39b)
This should help: http://hg.dovecot.org/dovecot-2.0/rev/ecc0bc80288c
thx Timo, i will try test asap and report
-- Best Regards
MfG Robert Schetterer
Germany/Munich/Bavaria
Am 30.09.2010 21:44, schrieb Robert Schetterer:
Am 30.09.2010 21:29, schrieb Timo Sirainen:
On Thu, 2010-09-30 at 12:45 +0200, Robert Schetterer wrote:
Panic: dict-client: Only one iteration supported /usr/lib/dovecot/modules/lib01_acl_plugin.so(acl_lookup_dict_rebuild+0x39b)
This should help: http://hg.dovecot.org/dovecot-2.0/rev/ecc0bc80288c
thx Timo, i will try test asap and report
Hi Timo, i see no dict errors now, but acl folder sharing is still broken, i will try to do more debug tommorow any idea what changed that much and might broke it beetween 2.03 and 2.04? for short looks i have no errors in debug logs the symptom stays that subdir shared/user@domain.de/folder gets not created so subscription failed
Am 01.10.2010 00:19, schrieb Robert Schetterer:
Am 30.09.2010 21:44, schrieb Robert Schetterer:
Am 30.09.2010 21:29, schrieb Timo Sirainen:
On Thu, 2010-09-30 at 12:45 +0200, Robert Schetterer wrote:
Panic: dict-client: Only one iteration supported /usr/lib/dovecot/modules/lib01_acl_plugin.so(acl_lookup_dict_rebuild+0x39b)
This should help: http://hg.dovecot.org/dovecot-2.0/rev/ecc0bc80288c
thx Timo, i will try test asap and report
Hi Timo, i see no dict errors now, but acl folder sharing is still broken, i will try to do more debug tommorow any idea what changed that much and might broke it beetween 2.03 and 2.04? for short looks i have no errors in debug logs the symptom stays that subdir shared/user@domain.de/folder gets not created so subscription failed
i tested a lot but didnt found any solution or bugs in debug logs comparing same setup dove 2.03 vs 2.04 folder sharing simply seems broken in 2.04 heres dovecot -n
# 2.0.4 (ecc0bc80288c): /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-25-server x86_64 Ubuntu 10.04.1 LTS auth_debug = yes auth_debug_passwords = yes auth_master_user_separator = * auth_mechanisms = plain login auth_socket_path = /var/run/dovecot/auth-userdb auth_verbose = yes auth_verbose_passwords = plain dict { acl = mysql:/etc/dovecot/dovecot-dict-acl-sql.conf.ext expire = mysql:/etc/dovecot/dovecot-dict-expire-sql.conf.ext quotadict = mysql:/etc/dovecot/dovecot-dict-quota-sql.conf.ext } disable_plaintext_auth = no first_valid_gid = 1001 first_valid_uid = 1001 hostname = mail01.mailspooler.com last_valid_gid = 1001 last_valid_uid = 1001 listen = * login_greeting = imap, pop ready mail_access_groups = vmail mail_debug = yes mail_fsync = always mail_gid = 1001 mail_location = maildir:~/ mail_nfs_index = yes mail_nfs_storage = yes mail_plugins = expire virtual fts fts_squat mail_log autocreate notify mail_privileged_group = vmail mail_uid = 1001 managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date mmap_disable = yes namespace { hidden = no inbox = yes list = yes location = prefix = separator = / subscriptions = yes type = private } namespace { hidden = yes list = no location = virtual:/etc/dovecot/virtual:LAYOUT=maildir++ prefix = virtual/ separator = / subscriptions = no type = private } namespace { hidden = yes list = no location = prefix = RealMails/ separator = / type = private } namespace { inbox = no list = children location = maildir:/usr/local/virtual/%%d/%%u/:INDEX=~/shared/%%d/%%u/ prefix = shared/%%u/ separator = / subscriptions = no type = shared } passdb { args = /etc/dovecot/dovecot-sql-master.conf.ext driver = sql master = yes pass = yes } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile acl_anyone = allow acl_shared_dict = proxy::acl autocreate = Trash autocreate2 = Junk autocreate3 = Sent autocreate4 = Drafts autocreate5 = Templates autosubscribe = Trash autosubscribe2 = Junk autosubscribe3 = Sent autosubscribe4 = Drafts autosubscribe5 = Templates expire = Trash expire2 = Trash/* expire3 = Junk expire4 = Junk/* expire_dict = proxy::expire fts = squat home = /usr/local/virtual/%d/%u mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size mail_log_group_events = yes quota = dict:::proxy::quotadict quota_warning = storage=95%% quota-warning 95 %u quota_warning2 = storage=80%% quota-warning 80 %u sieve = /usr/local/virtual/%d/%u/dovecot.sieve sieve_before = /etc/dovecot/sieve/global.sieve sieve_dir = /usr/local/virtual/%d/%u/sieve sieve_global_dir = /etc/dovecot/sieve/ sieve_global_path = /etc/dovecot/sieve/global.sieve } postmaster_address = hostmaster@mail01.mailspooler.com protocols = imap pop3 lmtp sieve sendmail_path = /usr/lib/sendmail service auth-worker { user = root } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } unix_listener auth-userdb { group = vmail mode = 0600 user = vmail } } service dict { extra_groups = vmail unix_listener dict { group = vmail mode = 0660 } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_min_avail = 0 service_count = 1 } service imap-postlogin { executable = script-login /usr/local/bin/postlogin_imap.sh user = root } service imap { executable = imap imap-postlogin process_limit = 1024 vsz_limit = 268435456 } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener { address = 127.0.0.1 port = 2000 } } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } } service pop3-postlogin { executable = script-login /usr/local/bin/postlogin_pop3.sh user = root } service pop3 { executable = pop3 pop3-postlogin } service quota-warning { executable = script /usr/local/bin/quota-warning.sh unix_listener quota-warning { mode = 0666 user = vmail } user = dovecot } ssl_cert = </etc/postfix/wildcard.crt ssl_key = </etc/postfix/wildcard.key userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } verbose_proctitle = yes verbose_ssl = yes protocol lda { mail_plugins = quota sieve virtual acl mail_log notify expire } protocol imap { imap_client_workarounds = delay-newmail imap_id_log = * imap_id_send = * imap_idle_notify_interval = 120 s imap_logout_format = bytes=%i/%o imap_max_line_length = 65536 mail_max_userip_connections = 10 mail_plugins = imap_acl acl fts fts_squat mail_log autocreate notify expire virtual quota imap_quota } protocol lmtp { mail_plugins = quota sieve virtual acl fts fts_squat mail_log notify expire } protocol sieve { managesieve_implementation_string = Dovecot } protocol pop3 { mail_max_userip_connections = 3 mail_plugins = expire virtual quota mail_log fts fts_squat notify pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_enable_last = yes pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s pop3_save_uidl = yes pop3_uidl_format = %g }
-- Best Regards
MfG Robert Schetterer
Germany/Munich/Bavaria
On Fri, 2010-10-01 at 11:34 +0200, Robert Schetterer wrote:
comparing same setup dove 2.03 vs 2.04 folder sharing simply seems broken in 2.04
I can't think of anything related to this that I changed in v2.0.4. Also it works in my test.
heres dovecot -n
mail_plugins = expire virtual fts fts_squat mail_log autocreate notify
You should include acl in this global mail_plugins as well.
What does it say when you log in manually and issue some IMAP commands, like:
a login user pass b list "" shared/* c lsub "" shared/* d select shared/user@domain/something-that-you-should-have-access-to
Am 01.10.2010 18:16, schrieb Timo Sirainen:
On Fri, 2010-10-01 at 11:34 +0200, Robert Schetterer wrote:
comparing same setup dove 2.03 vs 2.04 folder sharing simply seems broken in 2.04
I can't think of anything related to this that I changed in v2.0.4. Also it works in my test.
heres dovecot -n
mail_plugins = expire virtual fts fts_squat mail_log autocreate notify
You should include acl in this global mail_plugins as well.
done , but thats not the point, as i had it in imap_plugins
What does it say when you log in manually and issue some IMAP commands, like:
a login user pass b list "" shared/* c lsub "" shared/* d select shared/user@domain/something-that-you-should-have-access-to
Hi Timo , shame on me i didnt tested it this way
to me it looks fine
. 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 ACL RIGHTS=texk] Logged in . list "" shared/*
- LIST (\Noselect \HasChildren) "/" "shared/postmaster@schetterer.name"
- LIST (\HasNoChildren) "/" "shared/postmaster@schetterer.name/Sent"
- LIST (\HasNoChildren) "/" "shared/postmaster@schetterer.name/Drafts"
- LIST (\HasNoChildren) "/" "shared/postmaster@schetterer.name/Archives" . OK List completed. . sub "" shared/* . BAD Error in IMAP command SUB: Unknown command. . lsub "" shared/* . OK Lsub completed. . select shared/postmaster@schetterer.name/Archives
- FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
- OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
- 0 EXISTS
- 0 RECENT
- OK [UIDVALIDITY 1285918875] UIDs valid
- OK [UIDNEXT 1] Predicted next UID
- OK [HIGHESTMODSEQ 1] Highest . OK [READ-WRITE] Select completed.
but thats seems not to be the point
under 2.03 a subdir shared/user.name.de/folder was created/linked when subscribing, with 2.04 this does not happen, so even if everthing with acl and subscription works good there is physicaly no folder , no wonder looking in it fails tb behaves equal, the subscription is shown short time and fails the by folder not found i have identical servers behind loadbaalncers, one with 2.03 and one with 2.04 so its easy testing, by simply switch one up drop the other down, i tried to trace but cant find a point wehn this subfolder creation fails
Best Regards
MfG Robert Schetterer
Germany/Munich/Bavaria
On Fri, 2010-10-01 at 20:33 +0200, Robert Schetterer wrote:
. lsub "" shared/* . OK Lsub completed.
Looking at your logs, you should see something like:
Warning: Subscriptions file /home/tss/Maildir/subscriptions: Ignoring invalid entry: shared/tss2/foo
Yeah, this is a bug. I'll fix it soon.
Am 01.10.2010 22:14, schrieb Timo Sirainen:
On Fri, 2010-10-01 at 20:33 +0200, Robert Schetterer wrote:
. lsub "" shared/* . OK Lsub completed.
Looking at your logs, you should see something like:
Warning: Subscriptions file /home/tss/Maildir/subscriptions: Ignoring invalid entry: shared/tss2/foo
Yeah, this is a bug. I'll fix it soon.
youre right, this is the log entry, i will test 2.05
-- Best Regards
MfG Robert Schetterer
Germany/Munich/Bavaria
Am 02.10.2010 05:16, schrieb Robert Schetterer:
Am 01.10.2010 22:14, schrieb Timo Sirainen:
On Fri, 2010-10-01 at 20:33 +0200, Robert Schetterer wrote:
. lsub "" shared/* . OK Lsub completed.
Looking at your logs, you should see something like:
Warning: Subscriptions file /home/tss/Maildir/subscriptions: Ignoring invalid entry: shared/tss2/foo
Yeah, this is a bug. I'll fix it soon.
youre right, this is the log entry, i will test 2.05
for very very small tests i see it fixed with upgrading to 2.05 thx Timo youre great
-- Best Regards
MfG Robert Schetterer
Germany/Munich/Bavaria
participants (2)
-
Robert Schetterer
-
Timo Sirainen