Hi,
I have set up 2 SLES 15 Hosts with dovecot and replication. Everything seems to work fine but every time a message is delivered, I get an out of memory error in the logs. The Replication itself
seems to work fine though.
I increased default_vsz_limit to 512M but the only thing that changed was that dovecot was trying to allocate 1073741864 bytes instead of 268435496
As I said, I’m running SLES 15 SP1 and Dovecot 2.3.10 (0da0eff44) (both Hosts have the same version)
Each Host currently has 8GB of Memory.
# free -h
total used free shared buff/cache available
Mem: 7.8Gi 278Mi 7.3Gi 47Mi 183Mi 7.2Gi
Swap: 4.0Gi 0B 4.0Gi
# journalctl -f
Jun 18 15:55:48 mail1 postfix/pickup[3457]: 18533C009C8: uid=0 from=<root>
Jun 18 15:55:48 mail1 postfix/cleanup[3669]: 18533C009C8: message-id=<20200618135548.18533C009C8@mail1>
Jun 18 15:55:48 mail1 postfix/qmgr[3458]: 18533C009C8: from=<root@mail1>, size=431, nrcpt=1 (queue active)
Jun 18 15:55:48 mail1 dovecot[1833]: lmtp(3673): Connect from local
Jun 18 15:55:48 mail1 dovecot[1833]: replicator: Panic: data stack: Out of memory when allocating 268435496 bytes
Jun 18 15:55:48 mail1 dovecot[1833]: replicator: Error: Raw backtrace: /usr/lib64/dovecot/libdovecot.so.0(backtrace_append+0x42) [0x7f8346d6d262] -> /usr/lib64/dovecot/libdovecot.so.0(backtrace_get+0x1e)
[0x7f8346d6d37e] -> /usr/lib64/dovecot/libdovecot.so.0(+0xebcee) [0x7f8346d77cee] -> /usr/lib64/dovecot/libdovecot.so.0(+0xebd91) [0x7f8346d77d91] -> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0) [0x7f8346cd1f8b] -> /usr/lib64/dovecot/libdovecot.so.0(t_pop_last_unsafe+0)
[0x7f8346d73660] -> /usr/lib64/dovecot/libdovecot.so.0(+0xe7a50) [0x7f8346d73a50] -> /usr/lib64/dovecot/libdovecot.so.0(+0x10eb58) [0x7f8346d9ab58] -> /usr/lib64/dovecot/libdovecot.so.0(+0xe3ac5) [0x7f8346d6fac5] -> /usr/lib64/dovecot/libdovecot.so.0(buffer_write+0xf2)
[0x7f8346d6fdb2] -> dovecot/replicator(replicator_queue_push+0xde) [0x5648989a5cde] -> dovecot/replicator(+0x5464) [0x5648989a5464] -> dovecot/replicator(+0x4a0b) [0x5648989a4a0b] -> dovecot/replicator(+0x4c02) [0x5648989a4c02] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_call_io+0x69)
[0x7f8346d90c99] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x134) [0x7f8346d92574] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_handler_run+0x4c) [0x7f8346d90d9c] -> /usr/lib64/dovecot/libdovecot.so.0(io_loop_run+0x38) [0x7f8346d90fc8]
-> /usr/lib64/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f8346d01873] -> dovecot/replicator(main+0x1a0) [0x5648989a3cb0] -> /lib64/libc.so.6(__libc_start_main+0xea) [0x7f83468f534a] -> dovecot/replicator(_start+0x2a) [0x5648989a3d5a]
Jun 18 15:55:48 mail1 dovecot[1833]: lmtp(test@example.com)<3673><q5sLCGRy615ZDgAATn/NZw>: Warning: replication(test@example.com): Sync failure:
Jun 18 15:55:48 mail1 dovecot[1833]: lmtp(test@example.com)<3673><q5sLCGRy615ZDgAATn/NZw>: Warning: replication(test@example.com): Remote sent invalid input: -
Jun 18 15:55:48 mail1 dovecot[1833]: lmtp(test@example.com)<3673><q5sLCGRy615ZDgAATn/NZw>: msgid=<20200618135548.18533C009C8@mail1>: saved mail to INBOX
Jun 18 15:55:48 mail1 dovecot[1833]: lmtp(3673): Disconnect from local: Client has quit the connection (state=READY)
Jun 18 15:55:48 mail1 postfix/lmtp[3672]: 18533C009C8: to=<test@example.com>, orig_to=<test@domain.com>, relay=mail1[private/dovecot-lmtp], delay=0.17, delays=0.02/0.01/0.02/0.13, dsn=2.0.0, status=sent
(250 2.0.0 <test@example.com> q5sLCGRy615ZDgAATn/NZw Saved)
Jun 18 15:55:48 mail1 postfix/qmgr[3458]: 18533C009C8: removed
Jun 18 15:55:48 mail1 dovecot[1833]: replicator: Fatal: master: service(replicator): child 2948 killed with signal 6 (core not dumped - https://dovecot.org/bugreport.html#coredumps - set /proc/sys/fs/suid_dumpable
to 2)