Replicator bug report

Daniel Miller dmiller at amfes.com
Tue Dec 7 20:29:49 UTC 2021


>service replicator {
>    vsz_limit = 2G
>}
>
>Aki
>
Tried that - got another one.

[New LWP 14072]
Core was generated by `dovecot/replicator'.
Program terminated with signal SIGABRT, Aborted.
---Type <return> to continue, or q <return> to quit---
#0  __GI_raise (sig=sig at entry=6) at 
../sysdeps/unix/sysv/linux/raise.c:51
51      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt full
#0  __GI_raise (sig=sig at entry=6) at 
../sysdeps/unix/sysv/linux/raise.c:51
         set = {__val = {0, 1459, 1460, 94545983793224, 8, 
140396720010827, 153, 140396719819340, 140727510797504, 120, 
206158430224,
             140727510797840, 140727510797632, 2471027943189898752, 
94545983793200, 140396719586582}}
         pid = <optimized out>
         tid = <optimized out>
         ret = <optimized out>
#1  0x00007fb0a84eb8b1 in __GI_abort () at abort.c:79
         save_stage = 1
         act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 
0x0}, sa_mask = {__val = {94545983791152, 18446744073709551615,
               1073741824, 94545983669264, 140396719562123, 
140396722477344, 140396719540956, 140396722477344, 2471027943189898752,
               140396722477320, 140396719818546, 140727510797840, 
140396722477344, 140727510797840, 140396719818937, 140396722477344}},
           sa_flags = -1466408342, sa_restorer = 0x5}
         sigs = {__val = {32, 0 <repeats 15 times>}}
         __cnt = <optimized out>
         __set = <optimized out>
         __cnt = <optimized out>
---Type <return> to continue, or q <return> to quit---
         __set = <optimized out>
#2  0x00007fb0a89949d1 in default_fatal_finish (status=0, 
type=LOG_TYPE_PANIC) at failures.c:459
         backtrace = 0x55fd33c76008 
"/usr/lib/dovecot/libdovecot.so.0(backtrace_append+0x42) 
[0x7fb0a8986142] -> /usr/lib/dovecot/libdovecot.so.0(backtrace_get+0x1e) 
[0x7fb0a898625e] -> /usr/lib/dovecot/libdovecot.so.0(+0xf8a1e) 
[0x7fb0a"...
         backtrace = <optimized out>
         recursed = 0
#3  fatal_handler_real (ctx=<optimized out>, format=<optimized out>, 
args=<optimized out>) at failures.c:471
         status = 0
#4  0x00007fb0a8994ac1 in i_internal_fatal_handler (ctx=<optimized out>, 
format=<optimized out>, args=<optimized out>) at failures.c:872
No locals.
#5  0x00007fb0a88e14a7 in i_panic (format=format at entry=0x7fb0a89fa2d0 
"data stack: Out of memory when allocating %zu bytes")
     at failures.c:524
         ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0, 
timestamp_usecs = 0, log_prefix = 0x0, log_prefix_type_pos = 0}
         args = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 
0x7ffdad4a8f60, reg_save_area = 0x7ffdad4a8ea0}}
#6  0x00007fb0a898d4e8 in mem_block_alloc 
(min_size=min_size at entry=2147483648) at data-stack.c:386
         block = <optimized out>
---Type <return> to continue, or q <return> to quit---
         prev_size = <optimized out>
         alloc_size = 4294967296
#7  0x00007fb0a898dae3 in t_malloc_real (size=size at entry=2147483648, 
permanent=permanent at entry=true) at data-stack.c:492
         block = <optimized out>
         ret = <optimized out>
         alloc_size = 2147483648
         warn = false
#8  0x00007fb0a898dd6a in t_malloc_no0 (size=size at entry=2147483648) at 
data-stack.c:543
No locals.
#9  0x00007fb0a89b7f28 in pool_data_stack_realloc (pool=<optimized out>, 
mem=0x7fb052ea2038, old_size=1073741824, new_size=2147483648)
     at mempool-datastack.c:173
         dpool = <optimized out>
         new_mem = <optimized out>
         pool = <optimized out>
         new_size = 2147483648
         mem = 0x7fb052ea2038
---Type <return> to continue, or q <return> to quit---
         old_size = 1073741824
         dpool = <optimized out>
         new_mem = <optimized out>
         dpool = <optimized out>
         new_mem = <optimized out>
#10 0x00007fb0a8988aa3 in p_realloc (new_size=2147483648, 
old_size=<optimized out>, mem=<optimized out>, pool=<optimized out>)
     at mempool.h:120
No locals.
#11 buffer_alloc (buf=buf at entry=0x55fd33c36f78, size=2147483648) at 
buffer.c:40
         __func__ = "buffer_alloc"
#12 0x00007fb0a8988fb4 in buffer_check_limits (data_size=32, 
pos=1073741792, buf=0x55fd33c36f78) at buffer.c:85
         new_alloc_size = <optimized out>
         new_size = 1073741824
         new_size = <optimized out>
         max = <optimized out>
         new_alloc_size = <optimized out>
---Type <return> to continue, or q <return> to quit---
#13 buffer_check_append_limits (data_size=32, buf=0x55fd33c36f78) at 
buffer.c:117
No locals.
#14 buffer_append (_buf=0x55fd33c36f78, data=0x55fd33c58410, 
data_size=32) at buffer.c:235
         pos = 1073741792
         buf = 0x55fd33c36f78
#15 0x000055fd33946846 in array_append_i (count=1, data=0x55fd33c58410, 
array=<synthetic pointer>) at ../../../src/lib/array.h:210
No locals.
#16 replicator_queue_handle_sync_lookups (user=0x55fd33c5f460, 
queue=0x55fd33c4a230) at replicator-queue.c:297
         lookups = <optimized out>
         i = 0
         count = <optimized out>
         success = 255
         callbacks = <optimized out>
         lookups = <optimized out>
         callbacks = <optimized out>
         i = <optimized out>
---Type <return> to continue, or q <return> to quit---
         count = <optimized out>
         success = <optimized out>
         lookups_end = <optimized out>
#17 replicator_queue_push (queue=0x55fd33c4a230, user=0x55fd33c5f460) at 
replicator-queue.c:315
         _data_stack_cur_id = 3
         __func__ = "replicator_queue_push"
#18 0x000055fd33945f67 in dsync_callback 
(reply=reply at entry=DSYNC_REPLY_OK,
     state=state at entry=0x55fd33c36bb0 
"AQAAAPyg1DBh63NeGjoAAJ21rMvbbs1ZAAAAAAE", 'A' <repeats 25 times>, 
"cCkXAK4xIV4XMwAAnbWsy+UnHl4FAAAACw", 'A' <repeats 20 times>, 
"UAAABMf78EtTEhXh4zAACdtazL5iceXgAAAAAB", 'A' <repeats 25 times>, 
"J6hkRe6MSFeJTMAAJ21"...,
     context=context at entry=0x55fd33c5be40) at replicator-brain.c:125
         ctx = 0x55fd33c5be40
         user = 0x0
#19 0x000055fd3394554b in dsync_callback (client=0x55fd33c62f20,
     state=0x55fd33c36bb0 "AQAAAPyg1DBh63NeGjoAAJ21rMvbbs1ZAAAAAAE", 'A' 
<repeats 25 times>, "cCkXAK4xIV4XMwAAnbWsy+UnHl4FAAAACw", 'A' <repeats 
20 times>, "UAAABMf78EtTEhXh4zAACdtazL5iceXgAAAAAB", 'A' <repeats 25 
times>, "J6hkRe6MSFeJTMAAJ21"..., reply=DSYNC_REPLY_OK)
     at dsync-client.c:64
---Type <return> to continue, or q <return> to quit---
         callback = 0x55fd33945ec0 <dsync_callback>
         context = 0x55fd33c5be40
#20 0x000055fd33945732 in dsync_input_line (line=0x55fd33c36f30 "+", 
client=0x55fd33c62f20) at dsync-client.c:131
         state = 0x55fd33c36bb0 
"AQAAAPyg1DBh63NeGjoAAJ21rMvbbs1ZAAAAAAE", 'A' <repeats 25 times>, 
"cCkXAK4xIV4XMwAAnbWsy+UnHl4FAAAACw", 'A' <repeats 20 times>, 
"UAAABMf78EtTEhXh4zAACdtazL5iceXgAAAAAB", 'A' <repeats 25 times>, 
"J6hkRe6MSFeJTMAAJ21"...
         state = <optimized out>
#21 dsync_input (client=0x55fd33c62f20) at dsync-client.c:154
         line = <optimized out>
#22 0x00007fb0a89ad699 in io_loop_call_io (io=0x55fd33c63000) at 
ioloop.c:737
         ioloop = 0x55fd33c3ee60
         t_id = 2
         __func__ = "io_loop_call_io"
#23 0x00007fb0a89aeff4 in io_loop_handler_run_internal 
(ioloop=ioloop at entry=0x55fd33c3ee60) at ioloop-epoll.c:222
         ctx = 0x55fd33c415c0
         events = <optimized out>
         event = <optimized out>
---Type <return> to continue, or q <return> to quit---
         list = 0x55fd33c5b450
         io = <optimized out>
         tv = {tv_sec = 304, tv_usec = 188187}
         events_count = <optimized out>
         msecs = <optimized out>
         ret = <optimized out>
         i = 0
         j = <optimized out>
         call = <optimized out>
         __func__ = "io_loop_handler_run_internal"
#24 0x00007fb0a89ad7a0 in io_loop_handler_run (ioloop=<optimized out>) 
at ioloop.c:789
No locals.
#25 0x00007fb0a89ad9d8 in io_loop_run (ioloop=0x55fd33c3ee60) at 
ioloop.c:762
         __func__ = "io_loop_run"
#26 0x00007fb0a8913a23 in master_service_run (service=0x55fd33c3ecc0, 
callback=<optimized out>) at master-service.c:863
No locals.
---Type <return> to continue, or q <return> to quit---
#27 0x000055fd3394481c in main (argc=<optimized out>, argv=<optimized 
out>) at replicator.c:112
         set_roots = {0x55fd33b49920 <replicator_setting_parser_info>, 
0x0}
         error = 0x0

dovecot -n
# 2.3.17.1 (476cd46418): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.17.1 (a1a0b892)
# OS: Linux 5.4.0-91-generic x86_64 Ubuntu 18.04.6 LTS xfs
# Hostname: bubba.amfes.lan
auth_cache_size = 4 k
auth_master_user_separator = *
auth_mechanisms = plain login
auth_policy_hash_nonce = # hidden, use -P to show it
auth_policy_hash_truncate = 8
auth_policy_server_api_header = Authorization: Basic 
d2ZvcmNlOnVsdHJhLXNlY3JldC1zZWN1cmUtc2FmZQ
auth_verbose = yes
default_login_user = nobody
default_vsz_limit = 2 G
disable_plaintext_auth = no
doveadm_password = # hidden, use -P to show it
doveadm_port = 10993
imap_capability = +SPECIAL-USE
listen = *
login_trusted_networks = 192.168.0.0/24
mail_attachment_detection_options = add-flags
mail_attachment_hash = %{sha512}
mail_attribute_dict = file:/var/mail/attributes
mail_gid = mail
mail_location = sdbox:/var/mail/%d/%n/sdbox
mail_plugins = fts fts_solr acl zlib virtual notify replication 
mailbox_alias
mail_prefetch_count = 10
mail_shared_explicit_inbox = yes
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
mdbox_rotate_size = 20 M
namespace archives {
   list = children
   location = mdbox:/var/mail/%d/%n/Archives/mdbox
   mailbox Unsorted {
     auto = no
     special_use = \Archive
   }
   prefix = INBOX/Archives/
   separator = /
   subscriptions = no
   type = private
}
namespace inbox {
   alias_for =
   hidden = no
   inbox = yes
   list = yes
   location =
   mailbox "Deleted Messages" {
     auto = no
     autoexpunge = 30 days
     special_use = \Trash
   }
   mailbox Drafts {
     auto = subscribe
     special_use = \Drafts
   }
   mailbox Sent {
     auto = subscribe
     special_use = \Sent
   }
   mailbox Trash {
     auto = subscribe
     autoexpunge = 30 days
     special_use = \Trash
   }
   prefix = INBOX/
   separator = /
   subscriptions = no
   type = private
}
namespace lists {
   list = children
   location = mdbox:/var/mail/%d/%n/Lists/mdbox
   prefix = INBOX/Lists/
   separator = /
   subscriptions = no
   type = private
}
namespace subscriptions {
   hidden = yes
   list = no
   location =
   prefix =
   separator = /
   subscriptions = yes
   type = private
}
namespace usershares {
   list = yes
   location = sdbox:/var/mail/%%d/%%n/sdbox:NO-NOSELECT
   prefix = INBOX/shared/%%d/%%n/
   separator = /
   subscriptions = no
   type = shared
}
namespace virtual {
   list = children
   location = virtual:/var/mail/%d/%n/virtual
   mailbox Flagged {
     comment = All my flagged messages
     special_use = \Flagged
   }
   prefix = INBOX/virtual/
   separator = /
   subscriptions = no
}
passdb {
   args = /etc/dovecot/dovecot-sql.conf.ext
   driver = sql
}
plugin {
   acl = vfile
   acl_shared_dict = file:/var/mail/%d/shared-mailboxes
   fts = solr
   fts_autoindex = yes
   fts_autoindex_exclude = \Trash
   fts_autoindex_exclude2 = \Junk
   fts_autoindex_exclude3 = \Spam
   fts_enforced = no
   fts_index_timeout = 20s
   fts_solr = url=http://127.0.0.1:8983/solr/dovecot/ batch_size=2000
   mail_replica = tcp:10.23.1.10
   mailbox_alias_new3 = Deleted Messages
   mailbox_alias_old3 = Trash
   replication_sync_timeout = 2
   sieve = file:~/sieve;active=~/.dovecot.sieve
}
protocols = imap lmtp sieve
replication_dsync_parameters = -d -l 30 -U -n INBOX -n INBOX/Archives -n 
INBOX/Lists -x INBOX/virtual -x INBOX/shared
replication_max_conns = 5
service aggregator {
   fifo_listener replication-notify-fifo {
     mode = 0600
     user = vmail
   }
   unix_listener replication-notify {
     mode = 0600
     user = vmail
   }
}
service auth {
   unix_listener /var/spool/postfix/private/auth {
     group = postfix
     mode = 0660
     user = postfix
   }
   unix_listener auth-userdb {
     group = mail
     mode = 0600
     user = vmail
   }
}
service doveadm {
   inet_listener {
     port = 10993
   }
   user = vmail
}
service imap-login {
   process_min_avail = 4
}
service imap-postlogin {
   executable = script-login /etc/dovecot/post-login.sh
   user = $default_internal_user
}
service imap {
   executable = imap imap-postlogin
   vsz_limit = 4 G
}
service indexer-worker {
   user = vmail
}
service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
     group = mail
     mode = 0666
     user = vmail
   }
}
service replicator {
   process_min_avail = 1
   unix_listener replicator-doveadm {
     mode = 0600
     user = vmail
   }
   vsz_limit = 2 G
}
ssl_cert = </etc/dovecot/certs/ssl_cert
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
   driver = prefetch
}
userdb {
   args = /etc/dovecot/dovecot-sql.conf.ext
   driver = sql
}
verbose_proctitle = yes
protocol lmtp {
   mail_plugins = fts fts_solr acl zlib virtual notify replication 
mailbox_alias sieve
   postmaster_address = postmaster at amfes.com
}
protocol imap {
   mail_plugins = fts fts_solr acl zlib virtual notify replication 
mailbox_alias imap_acl
}

--
Daniel




More information about the dovecot mailing list