Problem (bug?) copying mail folders

Keith Edmunds kae at midnighthax.com
Sun Jan 24 15:28:25 UTC 2016


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
    


More information about the dovecot mailing list