<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FR" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I’m dealing for few days with replication issues between two dovecot containerized instances in Kubernetes environment.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">After some search, I found this thread that reports exactly the same symptoms I encountered :
</span><a href="https://dovecot.org/pipermail/dovecot/2019-October/117353.html"><span lang="EN-US">https://dovecot.org/pipermail/dovecot/2019-October/117353.html</span></a><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I can confirm that downgrade of dovecot to 2.3.7.2 fixes the issue.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Testing usage of -T parameter with a very low value (10s) on 2.3.8 version is reducing perceptible impact of the issue (mails are replicated within the following five minutes).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I’m not expert in dovecot architecture but I tried to put an eye in the code and I’m wondering if this commit is not creating a potential phantom stalled I/O timeout ?<o:p></o:p></span></p>
<p class="MsoNormal"><a href="https://github.com/dovecot/core/commit/ec817bb2185bb21b34ba6bdd83b32af16dd0b4ad#diff-f0ef7f961c147b56c28b246b06eb5eb6"><span lang="EN-US">https://github.com/dovecot/core/commit/ec817bb2185bb21b34ba6bdd83b32af16dd0b4ad#diff-f0ef7f961c147b56c28b246b06eb5eb6</span></a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">In fact, I was unable to see when the counter incremented by io_set_pending is decremented ?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Hoping that this information can help…<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Regards.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Fabien.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">+--------+<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">For technical details :<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Container images are based on Arch Linux distro image.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Here is the configuration of Dovecot server :<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">dovecot -n<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># 2.3.7.2 (3c910f64b): /etc/dovecot/dovecot.conf<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># OS: Linux 4.19.66-coreos x86_64  ext4<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"># Hostname: mailstore-0.mailstore.piafe.svc.cluster.local<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">disable_plaintext_auth = no<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">doveadm_password = # hidden, use -P to show it<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">doveadm_port = 12345<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">login_greeting = PIAFE Mail Server Ready<o:p></o:p></span></p>
<p class="MsoNormal">mail_location = mdbox:/var/mail/%Ld/%Ln<o:p></o:p></p>
<p class="MsoNormal">mail_plugins = " notify replication quota"<o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">namespace inbox {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  hidden = no<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  inbox = yes<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  list = yes<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  location =<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  mailbox Brouillons {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    auto = subscribe<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    special_use = \Drafts<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  mailbox Corbeille {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    auto = subscribe<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    special_use = \Trash<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  mailbox "Courrier indésirable" {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    auto = subscribe<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    special_use = \Junk<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  mailbox Envoyés {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    auto = subscribe<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    special_use = \Sent<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  prefix =<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  separator = /<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  subscriptions = yes<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  type = private<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">passdb {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  args = /etc/dovecot/ldap.conf.ext<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  driver = ldap<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">plugin {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  mail_replica = tcp:mailstore-1.mailstore.piafe.svc.cluster.local<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  </span>quota = dirsize:User quota<o:p></o:p></p>
<p class="MsoNormal">  quota_grace = 10%%<o:p></o:p></p>
<p class="MsoNormal">  quota_max_mail_size = 20M<o:p></o:p></p>
<p class="MsoNormal">  quota_rule = *:storage=1G<o:p></o:p></p>
<p class="MsoNormal">  quota_rule2 = Trash:storage=+200M<o:p></o:p></p>
<p class="MsoNormal">  quota_status_access = DUNNO<o:p></o:p></p>
<p class="MsoNormal">  quota_status_nouser = DUNNO<o:p></o:p></p>
<p class="MsoNormal">  <span lang="EN-US">quota_status_overquota = 552 5.5.2 Mailbox is full<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">postmaster_address = postmaster@piafe.recouv.fr<o:p></o:p></span></p>
<p class="MsoNormal">replication_dsync_parameters = -d -N -l 30 -U -T 10<o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">service aggregator {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  fifo_listener replication-notify-fifo {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    </span>user = mailer<o:p></o:p></p>
<p class="MsoNormal">  }<o:p></o:p></p>
<p class="MsoNormal">  unix_listener replication-notify {<o:p></o:p></p>
<p class="MsoNormal">    user = mailer<o:p></o:p></p>
<p class="MsoNormal">  }<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal">service doveadm {<o:p></o:p></p>
<p class="MsoNormal">  inet_listener {<o:p></o:p></p>
<p class="MsoNormal">    port = 12345<o:p></o:p></p>
<p class="MsoNormal">  }<o:p></o:p></p>
<p class="MsoNormal">  inet_listener http {<o:p></o:p></p>
<p class="MsoNormal">    port = 8080<o:p></o:p></p>
<p class="MsoNormal">  <span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">service lmtp {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  inet_listener lmtp {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    address = *<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    </span>port = 24<o:p></o:p></p>
<p class="MsoNormal">  }<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal">service replicator {<o:p></o:p></p>
<p class="MsoNormal">  process_min_avail = 1<o:p></o:p></p>
<p class="MsoNormal">  <span lang="EN-US">unix_listener replicator-doveadm {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    group = mailer<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    mode = 0660<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ssl = no<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">userdb {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  args = /etc/dovecot/ldap.conf.ext<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  default_fields = uid=500 gid=500 home=/var/mail/%Ld/%Ln<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  </span>driver = ldap<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal">protocol imap {<o:p></o:p></p>
<p class="MsoNormal">  mail_plugins = " notify replication quota quota"<o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</body>
</html>