Reproduce of error (Replicator: Panic: data stack: Out of memory):
==================================================================

When replay on any mail I will got OOM.

I try add in service replicate vsz_limit = 0 but that not help (after proces dovecot/replicator eat all ram I got OOM)

Log error:
==========

Jun 03 09:38:59 Warning: imap(ivan@myserv.local)<2533034><h7EQN4bgaJ4FvZdE>: replication(ivan@myserv.local): Sync failure: Timeout in 2 secs Jun 03 09:39:03 Panic: replicator: data stack: Out of memory when allocating 4294967336 bytes Jun 03 09:39:03 Error: replicator: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(backtrace_append+0x42) [0x7feef08f0582] -> /usr/lib/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7feef08f069e] -> /usr/lib/dovecot/libdovecot.so.0(+0x1022fb) [0x7feef08fd2fb] -> /usr/lib/dovecot/libdovecot.so.0(+0x102391) [0x7feef08fd391] -> /usr/lib/dovecot/libdovecot.so.0(+0x55589) [0x7feef0850589] -> /usr/lib/dovecot/libdovecot.so.0(+0x54d52) [0x7feef084fd52] -> /usr/lib/dovecot/libdovecot.so.0(+0xfb808) [0x7feef08f6808] -> /usr/lib/dovecot/libdovecot.so.0(+0x122938) [0x7feef091d938] -> /usr/lib/dovecot/libdovecot.so.0(+0xf76bf) [0x7feef08f26bf] -> /usr/lib/dovecot/libdovecot.so.0(+0xf777e) [0x7feef08f277e] -> /usr/lib/dovecot/libdovecot.so.0(buffer_append+0x61) [0x7feef08f2a21] -> dovecot/replicator(replicator_queue_push+0x15a) [0x55953ece9b7a] -> dovecot/replicator(+0x62b6) [0x55953ece92b6] -> dovecot/replicator(+0x594e) [0x55953ece894e] -> dovecot/replicator(+0x5b2c) [0x55953ece8b2c] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x69) [0x7feef0913529] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x132) [0x7feef0914c12] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x50) [0x7feef09135d0] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40) [0x7feef0913790] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7feef0886353] -> dovecot/replicator(main+0x18d) [0x55953ece7cbd] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea) [0x7feef0651d0a] -> dovecot/replicator(_start+0x2a) [0x55953ece7d7a] Jun 03 09:39:03 Fatal: replicator: master: service(replicator): child 2532886 killed with signal 6 (core dumps disabled - https://dovecot.org/bugreport.html#coredumps)

My configuration:
==========

# 2.3.19 (b3ad6004dc): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.19 (4eae2f79)
# OS: Linux 5.10.0-13-amd64 x86_64 Debian 11.3 ext4
# Hostname: mail.myserv.local
auth_mechanisms = plain login
auth_verbose = yes
debug_log_path = /var/log/dovecot.debug
default_client_limit = 5000
default_process_limit = 1000
default_vsz_limit = 2 G
deliver_log_format = msgid=%m, subject=%s, from=%f, size=%p(%w), %$
dict {
  quota = pgsql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
doveadm_password = # hidden, use -P to show it
hostname = myserv.local
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
listen = *
log_path = /var/log/dovecot.log
mail_home = /var/mail/vhosts/%d/mail/%n
mail_location = maildir:/var/mail/vhosts/%d/mail/%n:INDEX=/var/mail/vhosts/%d/indexes/%n
mail_plugins = " quota fts fts_solr notify replication"
mail_privileged_group = 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 {
    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-sql.conf.ext
  driver = sql
}
plugin {
  autocreate = Sent
  autocreate2 = Drafts
  autocreate3 = Junk
  autocreate4 = Trash
  autosubscribe = Sent
  autosubscribe2 = Drafts
  autosubscribe3 = Junk
  autosubscribe4 = Trash
  expire = Trash
  expire2 = Trash/*
  expire3 = Spam
  fts = solr
  fts_autoindex = yes
  fts_solr = url=http://localhost:8983/solr/dovecot/
  imapsieve_mailbox1_before = file:/etc/dovecot/sieve/report-spam.sieve
  imapsieve_mailbox1_causes = COPY
  imapsieve_mailbox1_name = Junk
  imapsieve_mailbox2_before = file:/etc/dovecot/sieve/report-ham.sieve
  imapsieve_mailbox2_causes = COPY
  imapsieve_mailbox2_from = Junk
  imapsieve_mailbox2_name = *
  mail_replica = tcp:imap.myserv2.local:12345
  quota = dict:Mailbox::proxy::quota
  quota_rule = *:storage=1G
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
  replication_sync_timeout = 2
sieve = file:/var/mail/vhosts/%d/sieve/%n;active=/var/mail/vhosts/%d/sieve/%n/.dovecot.sieve
  sieve_after = /etc/dovecot/sieve/after.d/
  sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
  sieve_max_actions = 32
  sieve_max_redirects = 4
  sieve_max_script_size = 1M
  sieve_pipe_bin_dir = /etc/dovecot/sieve
  sieve_plugins = sieve_imapsieve sieve_extprograms
  sieve_quota_max_scripts = 50
}
postmaster_address = postmaster@%d
protocols = " imap lmtp sieve pop3"
service aggregator {
  fifo_listener replication-notify-fifo {
    user = vmail
  }
  unix_listener replication-notify {
    user = vmail
  }
}
service auth-worker {
  user = vmail
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0666
    user = postfix
  }
}
service dict {
  unix_listener dict {
    user = vmail
  }
}
service doveadm {
  inet_listener {
    port = 12345
    ssl = no
  }
}
service imap-login {
  process_min_avail = 4
  service_count = 1
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service quota-warning {
  executable = script /var/lib/dovecot/quota-warning.sh
  unix_listener quota-warning {
    user = vmail
  }
  user = root
}
service replicator {
  process_min_avail = 1
  unix_listener replicator-doveadm {
    mode = 0600
    user = vmail
  }
}
ssl = required
ssl_cert = </etc/letsencrypt/live/myserv.local/fullchain.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_key = # hidden, use -P to show it
ssl_min_protocol = TLSv1.1
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocol lmtp {
  mail_plugins = " quota fts fts_solr notify replication sieve"
}
protocol !indexer-worker {
  mail_vsize_bg_after_count = 100
}
protocol lda {
  mail_plugins = " quota fts fts_solr notify replication sieve"
}
protocol imap {
  mail_max_userip_connections = 20
mail_plugins = " quota fts fts_solr notify replication imap_quota imap_sieve"
}
protocol sieve {
  mail_max_userip_connections = 20
  managesieve_max_line_length = 64 k
}
protocol pop3 {
  mail_max_userip_connections = 20
  mail_plugins = " quota fts fts_solr notify replication quota"
}

Reply via email to