I have reported a bug to Claws Mail (http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=3601); however, I see some behaviour from Dovecot that looks odd to me.
Background: I am trying to copy a folder to another part of the IMAP folder hierarchy. The destination parent folder is ACL protected; I have lirwstpeak rights. Claws initially tries to create the destination folder and then copy the mails from the source to destination.
The destination parent folder is 'public/accounts'; the folder being moved there is 'test' and 'public/accounts/test' does not exist at the start of the process. This is from Dovecot's rawlog:
11 LIST "" "public/accounts/test" 11 OK List completed. 12 CREATE "public/accounts/test" 12 OK Create completed. 13 LIST "" "public/accounts/test" 13 OK List completed. 14 SUBSCRIBE "public/accounts/test" 14 NO Mailbox doesn't exist: public/accounts/test 15 UID COPY 1:2 "public/accounts/test" 15 NO [TRYCREATE] Mailbox doesn't exist: public/accounts/test
What I don't understand: the response to command 12 suggests that the destination folder has been created; the response to commands 14 and 15 suggest it hasn't.
At the completion of the process, the 'public/accounts/test' folder DOES exist, but it's empty, supporting the fact that it may not have existed when command 15 was executed.
Is there some kind of race condition here - or have I just misunderstood how this should work?
Running on ext4 filesystem; dovecot -n:
# 2.2.13: /etc/dovecot/dovecot.conf # OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.2 ext4 lda_mailbox_autocreate = yes mail_debug = yes mail_location = maildir:/srv/mail/imap/%u:LAYOUT=fs mail_plugins = acl fts 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 ihave namespace { hidden = no location = maildir:/srv/mail/imap/public:INDEX=/srv/mail/imap/public.indexes/%u.index:LAYOUT=fs prefix = public/ separator = / subscriptions = no type = public } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = / } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin { acl = vfile acl_shared_dict = file:/srv/mail/imap/shared-mailboxes fts_autoindex = yes sieve = /home/sieve/%u.sieve sieve_dir = /home/sieve/%u } protocols = " imap sieve sieve" service imap { executable = imap postlogin } service managesieve-login { inet_listener sieve { port = 4190 } } service postlogin { executable = script-login -d rawlog } ssl_cert = </etc/dovecot/dovecot.pem ssl_dh_parameters_length = 4096 ssl_key = </etc/dovecot/private/dovecot.pem ssl_protocols = !SSLv2 !SSLv3 userdb { args = uid=imapmail gid=imapmail default_fields = home=/dev/shm/%u driver = static } protocol lda { mail_plugins = acl fts sieve } protocol imap { mail_max_userip_connections = 20 mail_plugins = acl fts imap_acl }
-- "Why does God hate me so much? Is it because I don't believe in him?" - Sidney Morgenbesser
On 24 Jan 2016, at 17:28, Keith Edmunds <kae@midnighthax.com> wrote:
I have reported a bug to Claws Mail (http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=3601); however, I see some behaviour from Dovecot that looks odd to me.
Background: I am trying to copy a folder to another part of the IMAP folder hierarchy. The destination parent folder is ACL protected; I have lirwstpeak rights. Claws initially tries to create the destination folder and then copy the mails from the source to destination.
The destination parent folder is 'public/accounts'; the folder being moved there is 'test' and 'public/accounts/test' does not exist at the start of the process. This is from Dovecot's rawlog:
11 LIST "" "public/accounts/test" 11 OK List completed. 12 CREATE "public/accounts/test" 12 OK Create completed. 13 LIST "" "public/accounts/test" 13 OK List completed. 14 SUBSCRIBE "public/accounts/test" 14 NO Mailbox doesn't exist: public/accounts/test 15 UID COPY 1:2 "public/accounts/test" 15 NO [TRYCREATE] Mailbox doesn't exist: public/accounts/test
What I don't understand: the response to command 12 suggests that the destination folder has been created; the response to commands 14 and 15 suggest it hasn't.
Looks like a bug.
Is there some kind of race condition here - or have I just misunderstood how this should work?
Running on ext4 filesystem; dovecot -n:
# 2.2.13: /etc/dovecot/dovecot.conf
I attempted to reproduce it, but it worked fine with v2.2.21. So maybe upgrading alone helps.
participants (2)
-
Keith Edmunds
-
Timo Sirainen