mdbox + sis + altstorage: error in attachments-connector (file not found)

Paolo Cravero paolo.cravero at csi.it
Thu Feb 26 13:47:50 UTC 2015


Hello, first time here.
I am playing with Dovecot because of its mdbox storage, SIS feature and
altstorage ability. I authenticate against LDAP (passdb), but I don't fetch
operational data from LDAP (mail_locations are static from config files and
"user_attrs = =uid=500, =gid=500, =home=/maildata1/home/%d/%1n/%n").
 
On a daily basis I run "doveadm altmove -A savedbefore 5d"
 
Thunderbird apparently works 100%, but only apparently. When accessing one
of those mailboxes through Open-Xchange IMAP I got an error for the first
time. Then I could reproduce it with Thunderbird as well, I simply had to
open the message mentioned in the log:
 
Feb 26 14:06:02 tst-msg03 dovecot: imap(paolo.cravero at csi.it): Error:
read(attachments-connector(/maildata1/altstorage/csi.it/p/paolo.cravero/storage/m.35))
failed:
read(/maildata1/attachments/40/68/40683f07fcbf1f95f09b273e472b3c7067f43210641baf6e3cce333a27b36e11-4a235a29fd05db54fd6800001117ea21[base64:19
b/l]) failed:
open(/maildata1/attachments/40/68/40683f07fcbf1f95f09b273e472b3c7067f43210641baf6e3cce333a27b36e11-4a235a29fd05db54fd6800001117ea21)
failed: No such file or directory (uid=5940, box=INBOX)
 
Feb 26 14:06:02 tst-msg03 dovecot: imap(paolo.cravero at csi.it): Error:
read(attachments-connector(/maildata1/altstorage/csi.it/p/paolo.cravero/storage/m.35))
failed:
read(/maildata1/attachments/40/68/40683f07fcbf1f95f09b273e472b3c7067f43210641baf6e3cce333a27b36e11-4a235a29fd05db54fd6800001117ea21[base64:19
b/l]) failed:
open(/maildata1/attachments/40/68/40683f07fcbf1f95f09b273e472b3c7067f43210641baf6e3cce333a27b36e11-4a235a29fd05db54fd6800001117ea21)
failed: No such file or directory (uid=5940, box=INBOX)
 
Feb 26 14:06:02 tst-msg03 dovecot: imap(paolo.cravero at csi.it): Disconnected:
Internal error occurred. Refer to server log for more information.
[2015-02-26 14:06:02] in=182 out=1266

This happens on many messages sitting in the altstorage that had an
attachment. The detached attachment file does not exist. Sometimes not even
the path is there (anymore?).
 
At some point in time I have run "doveadm purge" on the mailbox in error,
but I am not sure that is the culprit.
 
 
Have I hit a bug or done something wrong? Please suggest tests to verify
where I stand.
 
Config dump follows.
Paolo
 
# 2.2.15: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-431.el6.x86_64 x86_64 Red Hat Enterprise Linux Server
release 6.5 (Santiago) ext3
auth_mechanisms = plain login
disable_plaintext_auth = no
imap_client_workarounds = tb-extra-mailbox-sep
lmtp_save_to_detail_mailbox = yes
mail_attachment_dir = /maildata1/attachments
mail_attachment_hash = %{sha256}
mail_debug = yes
mail_gid = 500
mail_location =
mdbox:/maildata1/main/%d/%1n/%n:ALT=/maildata1/altstorage/%d/%1n/%n:INDEX=/maildata1/indexes/%d/%1n/%n
mail_plugins = quota mail_log notify lazy_expunge
mail_uid = 500
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 duplicate
mbox_write_locks = fcntl
mdbox_rotate_size = 50 M
namespace {
  hidden = no
  list = yes
  location =
mdbox:/maildata1/main/%d/%1n/%n:INDEX=/maildata1/indexes/%d/%1n/%n:MAILBOXDIR=expunged
  prefix = .EXPUNGED/
  subscriptions = no
}
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
plugin {
  lazy_expunge = .EXPUNGED/
  mail_log_events = delete undelete expunge copy mailbox_delete
mailbox_rename flag_change append
  mail_log_fields = uid box msgid size flags vsize
  quota = dict:User quota::file:%h/dovecot-quota
  quota_grace = 10%%
  quota_rule = *:storage=10G
  quota_rule2 = Trash:storage=+100M
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
}
protocols = imap pop3 lmtp sieve
service auth {
  unix_listener auth-userdb {
    group = vmail
    user = vmail
  }
}
service lmtp {
  inet_listener lmtp {
    address = 10.102.42.114
    port = 24
  }
  process_min_avail = 2
  user = vmail
}
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
protocol lmtp {
  mail_plugins = quota mail_log notify lazy_expunge sieve
}
protocol lda {
  mail_plugins = quota mail_log notify lazy_expunge sieve
}
protocol imap {
  mail_plugins = quota mail_log notify lazy_expunge imap_quota
}


More information about the dovecot mailing list