Re: Replication

2022-09-05 Thread Silvio Siefke
On Mon, 5 Sep 2022 10:27:24 -0600
Shawn Heisey  wrote:

> I think the setting in the link would only affect the replicator, not 
> all of dovecot.  Your error does indicate it is the replicator that had 
> the problem, but I think setting the limit more globally would be 
> desirable.  If I have the wrong idea here, can someone please let me know?
> 
> In my config, I set default_vsz_limit and one instance of vsz_limit to 
> 1024M because I was running into a very similar error message.  I could 
> probably remove the explicit vsz_limit setting because I set the 
> default, but I haven't tried it, and this config works:

It seems that now works all. Thanks for help at all. 

Silvio


Re: Bypass quota check

2022-09-05 Thread Sami Ketola



> On 5. Sep 2022, at 16.21, Gabriele Nencioni  
> wrote:
> 
> I'm wondering if there is a way to send an email to an account even if
> it's in overquota?
> In other words: is there a way to bypass (or skip) the quota check,
> maybe setting a sort of ACL, for example if an email comes from a
> specific ip address?


There is multiple ways to implement this. When I did this long time ago I 
created separate userdb for protocol doveadm without quota restrictions and 
injected the overquota mail with doveadm command.

Sami



Re: Replication

2022-09-05 Thread Shawn Heisey

On 9/5/22 08:18, Silvio Siefke wrote:

On Mon, 5 Sep 2022 14:59:01 +0200
Narcis Garcia  wrote:


I SEE THIS IN LOG COPY:

Sep  5 18:02:18 asia dovecot: replicator: Panic: data stack: Out of
memory when allocating 268435496 bytes

Yes but Memory is enough free. I had follow the link


It is very likely virtual memory (just address space, not actual memory) 
that cannot be allocated.  Dovecot restricts the amount of virtual 
memory it can allocate ... something that most programs do not do.  This 
makes it possible to prevent a certain class of bug from using all the 
memory.  I think it defaults to 256M which would be 268435456 bytes.  
Just a tiny bit less than the amount in the error message.


I think the setting in the link would only affect the replicator, not 
all of dovecot.  Your error does indicate it is the replicator that had 
the problem, but I think setting the limit more globally would be 
desirable.  If I have the wrong idea here, can someone please let me know?


In my config, I set default_vsz_limit and one instance of vsz_limit to 
1024M because I was running into a very similar error message.  I could 
probably remove the explicit vsz_limit setting because I set the 
default, but I haven't tried it, and this config works:


-
elyograg@bilbo:/etc/dovecot$ cat conf.d/10-master.conf
#default_process_limit = 100
#default_client_limit = 1000

# Default VSZ (virtual memory size) limit for service processes. This is 
mainly

# intended to catch and kill processes that leak memory before they eat up
# everything.
default_vsz_limit = 1024M

# Login user is internally used by login processes. This is the most 
untrusted

# user in Dovecot system. It shouldn't have access to anything at all.
#default_login_user = dovenull

# Internal user is used by unprivileged processes. It should be separate 
from

# login user, so that login processes can't disturb other processes.
#default_internal_user = dovecot

service imap-login {
  inet_listener imap {
    #port = 143
  }
  inet_listener imaps {
    #port = 993
    #ssl = yes
  }

  # Number of connections to handle before starting a new process. 
Typically

  # the only useful values are 0 (unlimited) or 1. 1 is more secure, but 0
  # is faster. 
  #service_count = 1

  # Number of processes to always keep waiting for more connections.
  #process_min_avail = 0

  # If you set service_count=0, you probably need to grow this.
  #vsz_limit = $default_vsz_limit
}

#service pop3-login {
#  inet_listener pop3 {
#    #port = 110
#  }
#  inet_listener pop3s {
#    #port = 995
#    #ssl = yes
#  }
#}

service lmtp {
  unix_listener lmtp {
    #mode = 0666
  }

  # Create inet listener only if you can't use the above UNIX socket
  #inet_listener lmtp {
    # Avoid making LMTP visible for the entire internet
    #address =
    #port =
  #}
}

service imap {
  # Most of the memory goes to mmap()ing files. You may need to 
increase this

  # limit if you have huge mailboxes.
  vsz_limit = 1024M

  # Max. number of IMAP processes (connections)
  #process_limit = 1024
}

service pop3 {
  # Max. number of POP3 processes (connections)
  #process_limit = 1024
}

service auth {
  # auth_socket_path points to this userdb socket by default. It's 
typically
  # used by dovecot-lda, doveadm, possibly imap process, etc. Users 
that have
  # full permissions to this socket are able to get a list of all 
usernames and

  # get the results of everyone's userdb lookups.
  #
  # The default 0666 mode allows anyone to connect to the socket, but the
  # userdb lookups will succeed only if the userdb returns an "uid" 
field that
  # matches the caller process's UID. Also if caller's uid or gid 
matches the
  # socket's uid or gid the lookup succeeds. Anything else causes a 
failure.

  #
  # To give the caller full permissions to lookup all users, set the 
mode to

  # something else than 0666 and Dovecot lets the kernel enforce the
  # permissions (e.g. 0777 allows everyone full permissions).
  unix_listener auth-userdb {
    mode = 0666
    user = vmail
    group = mail
  }

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }

  # Auth process is run as this user.
  #user = $default_internal_user
}

service auth-worker {
  # Auth worker process is run as root by default, so that it can access
  # /etc/shadow. If this isn't necessary, the user should be changed to
  # $default_internal_user.
  #user = root
}

service dict {
  # If dict proxy is used, mail processes should have access to its socket.
  # For example: mode=0660, group=vmail and global mail_access_groups=vmail
  unix_listener dict {
    mode = 0660
    user = vmail
    group = postfix
  }
}
elyograg@bilbo:/etc/dovecot$
-

Thanks,
Shawn



Re: Replication

2022-09-05 Thread ivan



Make file 90-replication.com on primary and secudary mail server laik in 
example (change ip - or put hostname and password)


# Create 90-replication.conf

nano /etc/dovecot/conf.d/90-replication.conf

plugin {
  mail_replica = tcp:ip:12345
}

service replicator {
  process_min_avail = 1

  unix_listener replicator-doveadm {
mode = 0600
user = vmail
  }
}

service aggregator {
  fifo_listener replication-notify-fifo {
user = vmail
group = vmail
mode = 0666
  }
  unix_listener replication-notify {
user = vmail
group = vmail
mode = 0666
  }
}

service doveadm {
  inet_listener {
port = 12345
ssl = no
  }
}

doveadm_password = YourPassword

Dana 05.09.2022 12:15, Silvio Siefke je napisao(la):


Hello,

I try the replication of two Dovecot servers, but some errors always
appear. Maybe someone here has an idea what's going wrong.
As an MTA I use OpenSMTPD.

Thank You
Silvio

dovecot -n on MX 1
# 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.13 (cdd19fe3)
# OS: Linux 5.10.0-16-amd64 x86_64 Debian 11.4
# Hostname: asia.sisi-systems.ovh
auth_mechanisms = plain login
doveadm_password = # hidden, use -P to show it
doveadm_port = 2
mail_gid = vmail
mail_location = maildir:~/Maildir
mail_plugins = " notify replication"
mail_privileged_group = vmail
mail_uid = vmail
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 index ihave duplicate mime foreverypart 
extracttext imapsieve vnd.dovecot.imapsieve

namespace inbox {
inbox = yes
location =
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Spam {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix =
}
passdb {
args = scheme=SHA512-CRYPT username_format=%u /etc/dovecot/users
driver = passwd-file
}
plugin {
imapsieve_mailbox1_before = 
file:/var/vmail/sieve/global/learn-spam.sieve

imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_name = Spam
imapsieve_mailbox2_before = 
file:/var/vmail/sieve/global/learn-ham.sieve

imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_from = Spam
imapsieve_mailbox2_name = *
mail_replica = tcp:192.168.1.112
quota = maildir:User quota
quota_exceeded_message = Benutzer %u hat das Speichervolumen 
überschritten. / User %u has exhausted allowed storage space.

replication_sync_timeout = 2
sieve = 
file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve

sieve_before = /var/vmail/sieve/global/spam-global.sieve
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe
sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = lmtp imap pop3 sieve
service aggregator {
fifo_listener replication-notify-fifo {
user = vmail
}
unix_listener replication-notify {
user = vmail
}
}
service doveadm {
inet_listener {
port = 2
}
}
service imap-login {
inet_listener imap {
port = 143
}
}
service lmtp {
unix_listener lmtp {
group = vmail
user = vmail
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
mode = 0600
user = vmail
}
}
ssl = required
ssl_cert = ssl_cipher_list = 
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384

ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
ssl_min_protocol = TLSv1.2
userdb {
args = username_format=%u /etc/dovecot/users
driver = passwd-file
override_fields = uid=vmail gid=vmail home=/home/vmail/%d/%n
}
protocol imap {
imap_idle_notify_interval = 29 mins
mail_max_userip_connections = 20
mail_plugins = " notify replication quota imap_quota imap_sieve"
}
protocol lmtp {
mail_plugins = " notify replication sieve notify push_notification"
postmaster_address = netw...@sisi-systems.ovh
}
protocol pop3 {
mail_max_userip_connections = 10
mail_plugins = " notify replication"
}

dovecot -n on MX 2
# 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.13 (cdd19fe3)
# OS: Linux 5.10.0-15-amd64 x86_64 Debian 11.4
# Hostname: bulgaria.sisi-systems.ovh
auth_mechanisms = plain login
doveadm_password = # hidden, use -P to show it
doveadm_port = 2
mail_gid = vmail
mail_location = maildir:~/Maildir
mail_plugins = " notify replication"
mail_privileged_group = vmail
mail_uid = vmail
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope 
encoded-character vacation subaddress 

Re: Replication

2022-09-05 Thread Silvio Siefke
On Mon, 5 Sep 2022 14:59:01 +0200
Narcis Garcia  wrote:

> I SEE THIS IN LOG COPY:
>
> Sep  5 18:02:18 asia dovecot: replicator: Panic: data stack: Out of
> memory when allocating 268435496 bytes

Yes but Memory is enough free. I had follow the link

https://dovecot.org/pipermail/dovecot/2020-August/119655.html

and set but help not.

Silvio


Bypass quota check

2022-09-05 Thread Gabriele Nencioni
Hi all,
I have the following quota configuration:
lmtp_rcpt_check_quota = no
mail_plugins = notify mail_log quota
  quota = dict:User quota::file:%h/dovecot-quota
  quota_exceeded_message = Quota exceeded
  quota_rule2 = Trash:storage=+100M
  quota_warning = storage=100%% quota-warning -q 100 -n %n -d %d -e
OverQuota
  quota_warning2 = storage=80%% quota-warning -q 80 -n %n -d %d -e FillQuota
  quota_warning3 = -storage=99%% quota-warning -q 99 -n %n -d %d -e InQuota
quota_full_tempfail = yes
service quota-warning {
  executable = script /usr/local/dovecot/quotamanager.sh
  unix_listener quota-warning {
  mail_plugins = notify mail_log quota imap_quota imap_sieve
  mail_plugins = notify mail_log quota sieve


and the quota_rule (per-user) is retrieved by a specific SQL query in my
userdb.


I'm wondering if there is a way to send an email to an account even if
it's in overquota?
In other words: is there a way to bypass (or skip) the quota check,
maybe setting a sort of ACL, for example if an email comes from a
specific ip address?


Thanks in advance
Regards,
--
Gabriele Nencioni




Re: Replication

2022-09-05 Thread Narcis Garcia

I SEE THIS IN LOG COPY:

Sep  5 18:02:18 asia dovecot: replicator: Panic: data stack: Out of 
memory when allocating 268435496 bytes



Narcis Garcia

__
I'm using this dedicated address because personal addresses aren't 
masked enough at this mail public archive. Public archive administrator 
should fix this against automated addresses collectors.

El 5/9/22 a les 12:15, Silvio Siefke ha escrit:

Hello,

I try the replication of two Dovecot servers, but some errors always
appear. Maybe someone here has an idea what's going wrong.
As an MTA I use OpenSMTPD.

Thank You
Silvio

dovecot -n on MX 1
# 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.13 (cdd19fe3)
# OS: Linux 5.10.0-16-amd64 x86_64 Debian 11.4
# Hostname: asia.sisi-systems.ovh
auth_mechanisms = plain login
doveadm_password = # hidden, use -P to show it
doveadm_port = 2
mail_gid = vmail
mail_location = maildir:~/Maildir
mail_plugins = " notify replication"
mail_privileged_group = vmail
mail_uid = vmail
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 index ihave duplicate 
mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve
namespace inbox {
   inbox = yes
   location =
   mailbox Drafts {
 auto = subscribe
 special_use = \Drafts
   }
   mailbox Sent {
 auto = subscribe
 special_use = \Sent
   }
   mailbox Spam {
 auto = subscribe
 special_use = \Junk
   }
   mailbox Trash {
 auto = subscribe
 special_use = \Trash
   }
   prefix =
}
passdb {
   args = scheme=SHA512-CRYPT username_format=%u /etc/dovecot/users
   driver = passwd-file
}
plugin {
   imapsieve_mailbox1_before = file:/var/vmail/sieve/global/learn-spam.sieve
   imapsieve_mailbox1_causes = COPY
   imapsieve_mailbox1_name = Spam
   imapsieve_mailbox2_before = file:/var/vmail/sieve/global/learn-ham.sieve
   imapsieve_mailbox2_causes = COPY
   imapsieve_mailbox2_from = Spam
   imapsieve_mailbox2_name = *
   mail_replica = tcp:192.168.1.112
   quota = maildir:User quota
   quota_exceeded_message = Benutzer %u hat das Speichervolumen überschritten. 
/ User %u has exhausted allowed storage space.
   replication_sync_timeout = 2
   sieve = 
file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve
   sieve_before = /var/vmail/sieve/global/spam-global.sieve
   sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
   sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe
   sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = lmtp imap pop3 sieve
service aggregator {
   fifo_listener replication-notify-fifo {
 user = vmail
   }
   unix_listener replication-notify {
 user = vmail
   }
}
service doveadm {
   inet_listener {
 port = 2
   }
}
service imap-login {
   inet_listener imap {
 port = 143
   }
}
service lmtp {
   unix_listener lmtp {
 group = vmail
 user = vmail
   }
}
service managesieve-login {
   inet_listener sieve {
 port = 4190
   }
}
service pop3-login {
   inet_listener pop3 {
 port = 110
   }
   inet_listener pop3s {
 port = 995
 ssl = yes
   }
}
service replicator {
   process_min_avail = 1
   unix_listener replicator-doveadm {
 mode = 0600
 user = vmail
   }
}
ssl = required
ssl_cert = https://dovecot.org/bugreport.html#coredumps)
Sep  5 18:02:18 asia dovecot: replicator: Panic: data stack: Out of memory when 
allocating 268435496 bytes
Sep  5 18:02:18 asia dovecot: replicator: Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(backtrace_append+0x42) [0x7f27434e84e2] -> 
/usr/lib/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f27434e85fe] -> /usr/lib/dovecot/libdovecot.so.0(+0xfc49b) [0x7f27434f449b] -> 
/usr/lib/dovecot/libdovecot.so.0(+0xfc531) [0x7f27434f4531] -> /usr/lib/dovecot/libdovecot.so.0(+0x53aee) [0x7f274344baee] -> 
/usr/lib/dovecot/libdovecot.so.0(+0x53435) [0x7f274344b435] -> /usr/lib/dovecot/libdovecot.so.0(+0xf5d88) [0x7f27434edd88] -> 
/usr/lib/dovecot/libdovecot.so.0(+0x11b818) [0x7f2743513818] -> /usr/lib/dovecot/libdovecot.so.0(+0xf25f2) [0x7f27434ea5f2] -> 
/usr/lib/dovecot/libdovecot.so.0(+0xf26a9) [0x7f27434ea6a9] -> /usr/lib/dovecot/libdovecot.so.0(buffer_write+0x1e) [0x7f27434ea8be] -> 
dovecot/replicator(replicator_queue_push+0x14a) [0x5633c8c4eb1a] -> dovecot/replicator(+0x5296) [0x5633c8c4e296] -> 
dovecot/replicator(+0x493e) [0x5633c8c4d93e] -> dovecot/replicator(+0x4b1c) [0x5633c8c4db1c] -> 
/usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x69) [0x7f2743509f59] -> 
/usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x132) [0x7f274350b592] -> 
/usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x50) [0x7f274350a000] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40) 
[0x7f274350a1c0] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) 

Re: Thousands of SSL certificates stalls new logins during reload - problem with Dovecot config process

2022-09-05 Thread Arkadiusz Miśkiewicz

On 2.09.2022 14:44, Bartosz Kwitniewski wrote:

Hello,

I'm running a dovecot 2.3.19.1 server that has around 6000 SSL 
certificates in separate config files, each containing:

local_name "domain" {
     ssl_cert = ...
     ssl_key = ...
}
When new certificate is added, dovecot is reloaded (around 20 times a 
day). When dovecot is being reloaded, users are unable to log in for 
around 30 seconds.


Unfortunately it's known for ages that dovecot is not capable of 
handling thousands of certificates in a sane way.


There were some ideas which were never implemented:

https://dovecot.org/list/dovecot/2016-October/105858.html

( https://dovecot.org/list/dovecot/2016-October/105855.html )

--
Arkadiusz Miśkiewicz, arekm / ( maven.pl | pld-linux.org )



Re: Replication

2022-09-05 Thread Aki Tuomi
Hi Silvio!

Can you please send me dovecot-sysreport ran against the core file?

Please see https://www.dovecot.org/bugreport-mail/ for more information on how 
to get the core dump and where to find dovecot-sysreport.

Aki

> On 05/09/2022 13:15 EEST Silvio Siefke  wrote:
> 
>  
> Hello, 
> 
> I try the replication of two Dovecot servers, but some errors always
> appear. Maybe someone here has an idea what's going wrong. 
> As an MTA I use OpenSMTPD.
> 
> Thank You
> Silvio
> 
> dovecot -n on MX 1
> # 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.5.13 (cdd19fe3)
> # OS: Linux 5.10.0-16-amd64 x86_64 Debian 11.4 
> # Hostname: asia.sisi-systems.ovh
> auth_mechanisms = plain login
> doveadm_password = # hidden, use -P to show it
> doveadm_port = 2
> mail_gid = vmail
> mail_location = maildir:~/Maildir
> mail_plugins = " notify replication"
> mail_privileged_group = vmail
> mail_uid = vmail
> 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 index ihave 
> duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve
> namespace inbox {
>   inbox = yes
>   location = 
>   mailbox Drafts {
> auto = subscribe
> special_use = \Drafts
>   }
>   mailbox Sent {
> auto = subscribe
> special_use = \Sent
>   }
>   mailbox Spam {
> auto = subscribe
> special_use = \Junk
>   }
>   mailbox Trash {
> auto = subscribe
> special_use = \Trash
>   }
>   prefix = 
> }
> passdb {
>   args = scheme=SHA512-CRYPT username_format=%u /etc/dovecot/users
>   driver = passwd-file
> }
> plugin {
>   imapsieve_mailbox1_before = file:/var/vmail/sieve/global/learn-spam.sieve
>   imapsieve_mailbox1_causes = COPY
>   imapsieve_mailbox1_name = Spam
>   imapsieve_mailbox2_before = file:/var/vmail/sieve/global/learn-ham.sieve
>   imapsieve_mailbox2_causes = COPY
>   imapsieve_mailbox2_from = Spam
>   imapsieve_mailbox2_name = *
>   mail_replica = tcp:192.168.1.112
>   quota = maildir:User quota
>   quota_exceeded_message = Benutzer %u hat das Speichervolumen überschritten. 
> / User %u has exhausted allowed storage space.
>   replication_sync_timeout = 2
>   sieve = 
> file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve
>   sieve_before = /var/vmail/sieve/global/spam-global.sieve
>   sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
>   sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe
>   sieve_plugins = sieve_imapsieve sieve_extprograms
> }
> protocols = lmtp imap pop3 sieve
> service aggregator {
>   fifo_listener replication-notify-fifo {
> user = vmail
>   }
>   unix_listener replication-notify {
> user = vmail
>   }
> }
> service doveadm {
>   inet_listener {
> port = 2
>   }
> }
> service imap-login {
>   inet_listener imap {
> port = 143
>   }
> }
> service lmtp {
>   unix_listener lmtp {
> group = vmail
> user = vmail
>   }
> }
> service managesieve-login {
>   inet_listener sieve {
> port = 4190
>   }
> }
> service pop3-login {
>   inet_listener pop3 {
> port = 110
>   }
>   inet_listener pop3s {
> port = 995
> ssl = yes
>   }
> }
> service replicator {
>   process_min_avail = 1
>   unix_listener replicator-doveadm {
> mode = 0600
> user = vmail
>   }
> }
> ssl = required
> ssl_cert =  ssl_cipher_list = 
> ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
> ssl_client_ca_dir = /etc/ssl/certs
> ssl_dh = # hidden, use -P to show it
> ssl_key = # hidden, use -P to show it
> ssl_min_protocol = TLSv1.2
> userdb {
>   args = username_format=%u /etc/dovecot/users
>   driver = passwd-file
>   override_fields = uid=vmail gid=vmail home=/home/vmail/%d/%n
> }
> protocol imap {
>   imap_idle_notify_interval = 29 mins
>   mail_max_userip_connections = 20
>   mail_plugins = " notify replication quota imap_quota imap_sieve"
> }
> protocol lmtp {
>   mail_plugins = " notify replication sieve notify push_notification"
>   postmaster_address = netw...@sisi-systems.ovh
> }
> protocol pop3 {
>   mail_max_userip_connections = 10
>   mail_plugins = " notify replication"
> }
> 
> dovecot -n on MX 2
> # 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.5.13 (cdd19fe3)
> # OS: Linux 5.10.0-15-amd64 x86_64 Debian 11.4 
> # Hostname: bulgaria.sisi-systems.ovh
> auth_mechanisms = plain login
> doveadm_password = # hidden, use -P to show it
> doveadm_port = 2
> mail_gid = vmail
> mail_location = maildir:~/Maildir
> mail_plugins = " notify replication"
> mail_privileged_group = vmail
> mail_uid = vmail
> managesieve_notify_capability = mailto
> managesieve_sieve_capability = fileinto reject 

Replication

2022-09-05 Thread Silvio Siefke
Hello, 

I try the replication of two Dovecot servers, but some errors always
appear. Maybe someone here has an idea what's going wrong. 
As an MTA I use OpenSMTPD.

Thank You
Silvio

dovecot -n on MX 1
# 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.13 (cdd19fe3)
# OS: Linux 5.10.0-16-amd64 x86_64 Debian 11.4 
# Hostname: asia.sisi-systems.ovh
auth_mechanisms = plain login
doveadm_password = # hidden, use -P to show it
doveadm_port = 2
mail_gid = vmail
mail_location = maildir:~/Maildir
mail_plugins = " notify replication"
mail_privileged_group = vmail
mail_uid = vmail
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 index ihave duplicate 
mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
auto = subscribe
special_use = \Drafts
  }
  mailbox Sent {
auto = subscribe
special_use = \Sent
  }
  mailbox Spam {
auto = subscribe
special_use = \Junk
  }
  mailbox Trash {
auto = subscribe
special_use = \Trash
  }
  prefix = 
}
passdb {
  args = scheme=SHA512-CRYPT username_format=%u /etc/dovecot/users
  driver = passwd-file
}
plugin {
  imapsieve_mailbox1_before = file:/var/vmail/sieve/global/learn-spam.sieve
  imapsieve_mailbox1_causes = COPY
  imapsieve_mailbox1_name = Spam
  imapsieve_mailbox2_before = file:/var/vmail/sieve/global/learn-ham.sieve
  imapsieve_mailbox2_causes = COPY
  imapsieve_mailbox2_from = Spam
  imapsieve_mailbox2_name = *
  mail_replica = tcp:192.168.1.112
  quota = maildir:User quota
  quota_exceeded_message = Benutzer %u hat das Speichervolumen überschritten. / 
User %u has exhausted allowed storage space.
  replication_sync_timeout = 2
  sieve = 
file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve
  sieve_before = /var/vmail/sieve/global/spam-global.sieve
  sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
  sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe
  sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = lmtp imap pop3 sieve
service aggregator {
  fifo_listener replication-notify-fifo {
user = vmail
  }
  unix_listener replication-notify {
user = vmail
  }
}
service doveadm {
  inet_listener {
port = 2
  }
}
service imap-login {
  inet_listener imap {
port = 143
  }
}
service lmtp {
  unix_listener lmtp {
group = vmail
user = vmail
  }
}
service managesieve-login {
  inet_listener sieve {
port = 4190
  }
}
service pop3-login {
  inet_listener pop3 {
port = 110
  }
  inet_listener pop3s {
port = 995
ssl = yes
  }
}
service replicator {
  process_min_avail = 1
  unix_listener replicator-doveadm {
mode = 0600
user = vmail
  }
}
ssl = required
ssl_cert = https://dovecot.org/bugreport.html#coredumps)
Sep  5 18:02:18 asia dovecot: replicator: Panic: data stack: Out of memory when 
allocating 268435496 bytes
Sep  5 18:02:18 asia dovecot: replicator: Error: Raw backtrace: 
/usr/lib/dovecot/libdovecot.so.0(backtrace_append+0x42) [0x7f27434e84e2] -> 
/usr/lib/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f27434e85fe] -> 
/usr/lib/dovecot/libdovecot.so.0(+0xfc49b) [0x7f27434f449b] -> 
/usr/lib/dovecot/libdovecot.so.0(+0xfc531) [0x7f27434f4531] -> 
/usr/lib/dovecot/libdovecot.so.0(+0x53aee) [0x7f274344baee] -> 
/usr/lib/dovecot/libdovecot.so.0(+0x53435) [0x7f274344b435] -> 
/usr/lib/dovecot/libdovecot.so.0(+0xf5d88) [0x7f27434edd88] -> 
/usr/lib/dovecot/libdovecot.so.0(+0x11b818) [0x7f2743513818] -> 
/usr/lib/dovecot/libdovecot.so.0(+0xf25f2) [0x7f27434ea5f2] -> 
/usr/lib/dovecot/libdovecot.so.0(+0xf26a9) [0x7f27434ea6a9] -> 
/usr/lib/dovecot/libdovecot.so.0(buffer_write+0x1e) [0x7f27434ea8be] -> 
dovecot/replicator(replicator_queue_push+0x14a) [0x5633c8c4eb1a] -> 
dovecot/replicator(+0x5296) [0x5633c8c4e296] -> dovecot/replicator(+0x493e) 
[0x5633c8c4d93e] -> dovecot/replicator(+0x4b1c) [0x5633c8c4db1c] -> 
/usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x69) [0x7f2743509f59] -> 
/usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x132) 
[0x7f274350b592] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x50) 
[0x7f274350a000] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40) 
[0x7f274350a1c0] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) 
[0x7f27434804e3] -> dovecot/replicator(main+0x18d) [0x5633c8c4ccad] -> 
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea) [0x7f2743254d0a] -> 
dovecot/replicator(_start+0x2a) [0x5633c8c4cd6a]
Sep  5 18:02:18 asia dovecot: replicator: Fatal: master: service(replicator): 
child 706082 killed with signal 6 (core dumps disabled - 
https://dovecot.org/bugreport.html#coredumps)

Log MX 2 (bulgaria)
Sep  5 13:02:05 bulgaria dovecot: replicator: Panic: data stack: Out of