On Tue, Jan 23, 2018 at 14:03:27 -0500, Josef 'Jeff' Sipek wrote:
On Tue, Jan 23, 2018 at 18:21:38 +0100, Thomas Robers wrote:
Hello,
I'm using Dovecot 2.3 and sometimes i get this:
--- snip --- Jan 23 14:23:13 mail dovecot: imap(bob@tutech.de)<4880><PDqibHFjMvrAqG1n>: Panic: data stack: Out of memory when allocating 134217768 bytes
Interesting... imap is trying to allocate 128MB and failing. A couple of questions:
- Does this user have any unusually large emails?
- Do you have any idea what the imap process was doing at the time of the allocation failure?
- You snipped all the important parts of the back trace. :) It *starts* on the line: #0 0x00007f73f1386495 in raise () from /lib64/libc.so.6
In case you haven't used gdb before... after starting up gdb, run "bt full" at the gdb prompt. That'll print out a very detailed backtrace. (You might want to sanity check it to make sure there aren't any user passwords in it before posting it here...)
Jeff.
Having the backtrace should help answer question number 1. 3. How big is this process when it dies? 4. Do you have any sort of ulimit/rlimit set on dovecot in whatever startup script you use? 5. Do you use cgroups to limit memory usage? 6. Did you disable memory overcommit on the system?
Jeff.
Jan 23 14:23:13 mail dovecot: imap(bob@tutech.de)<4880><PDqibHFjMvrAqG1n>: Fatal: master: service(imap): child 4880 killed with signal 6 (core dumped) --- snip ---
The gdb backtrace is:
--- snip --- GNU gdb (GDB) Red Hat Enterprise Linux (7.2-92.el6) Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/libexec/dovecot/imap...(no debugging symbols found)...done. Attaching to program: /usr/libexec/dovecot/imap, process 4880 ptrace: Kein passender Prozess gefunden. [New Thread 4880] Reading symbols from /usr/lib64/dovecot/libdovecot-storage.so.0...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/dovecot/libdovecot-storage.so.0 Reading symbols from /usr/lib64/dovecot/libdovecot.so.0...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/dovecot/libdovecot.so.0 Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/librt.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/librt.so.1 Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/libdl.so.2 Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /lib64/libpthread.so.0...(no debugging symbols found)...done. [Thread debugging using libthread_db enabled] Loaded symbols for /lib64/libpthread.so.0 Reading symbols from /usr/lib64/dovecot/lib01_acl_plugin.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/dovecot/lib01_acl_plugin.so Reading symbols from /usr/lib64/dovecot/lib02_imap_acl_plugin.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/dovecot/lib02_imap_acl_plugin.so Reading symbols from /usr/lib64/dovecot/lib15_notify_plugin.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/dovecot/lib15_notify_plugin.so Reading symbols from /usr/lib64/dovecot/lib20_mail_log_plugin.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/dovecot/lib20_mail_log_plugin.so Reading symbols from /usr/lib64/dovecot/lib20_zlib_plugin.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/dovecot/lib20_zlib_plugin.so Reading symbols from /lib64/libz.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libz.so.1 Reading symbols from /lib64/libbz2.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libbz2.so.1 Reading symbols from /usr/lib64/dovecot/lib30_imap_zlib_plugin.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/dovecot/lib30_imap_zlib_plugin.so Core was generated by `dovecot/imap'. Program terminated with signal 6, Aborted. #0 0x00007f73f1386495 in raise () from /lib64/libc.so.6 --- snip ---
I searched for that error message but only found some entries regarding older dovecot versions and setting "mail_process_size" but i couldn't find anything regarding Dovecot Version 2.3. Maybe it's something that is fixed already but if so i can't find it. Or is this a configuration issue or a bug?
Here my Dovecot configuration:
--- snip --- # 2.3.0 (c8b89eb): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.0.1 (d33dca20) # OS: Linux 2.6.32-696.3.1.el6.x86_64 x86_64 CentOS release 6.9 (Final) ext4 auth_debug = yes auth_debug_passwords = yes auth_master_user_separator = * auth_mechanisms = plain login auth_verbose = yes disable_plaintext_auth = no doveadm_password = # hidden, use -P to show it doveadm_port = 12345 imap_max_line_length = 2 M mail_debug = yes mail_location = maildir:/export/home/imap/%Lu/Maildir mail_plugins = acl zlib mail_log notify mailbox_idle_check_interval = 10 secs 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 namespace { hidden = no ignore_on_failure = no inbox = no list = children location = maildir:%%h/Maildir:INDEXPVT=%h/shared/%%u prefix = shared/%%u/ separator = / subscriptions = yes type = shared } namespace inbox { hidden = no inbox = yes list = 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 = INBOX/ separator = / type = private } passdb { args = /etc/dovecot/master-users driver = passwd-file master = yes } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin { acl = vfile:/etc/dovecot/global-acls:cache_secs=300 acl_shared_dict = file:/export/home/shared-db/shared-mailboxes mail_log_events = append delete undelete expunge copy mailbox_delete mailbox_rename flag_change mail_log_fields = uid box msgid size from flags mail_replica = tcp:mail2.tutech.de sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_global = /var/lib/dovecot/sieve/global/ sieve_user_log = ~/.dovecot.sieve.log zlib_save = gz zlib_save_level = 6 } protocols = imap pop3 lmtp sieve sieve service aggregator { fifo_listener replication-notify-fifo { mode = 0666 user = vmail } unix_listener replication-notify { mode = 0666 user = vmail } } service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 } unix_listener auth-userdb { group = vmail mode = 0660 user = vmail } } service config { unix_listener config { user = vmail } } service doveadm { inet_listener { port = 12345 } user = vmail } service imap-login { inet_listener imaps { port = 993 ssl = yes } process_limit = 500 process_min_avail = 20 } service imap { executable = imap } service lmtp { inet_listener lmtp { address = 127.0.0.1 port = 24 } } service managesieve-login { inet_listener sieve { port = 4190 } inet_listener sieve_deprecated { port = 2000 } } service pop3-login { inet_listener pop3s { port = 995 ssl = yes } } service pop3 { executable = pop3 } service replicator { unix_listener replicator-doveadm { mode = 0666 } } ssl = required ssl_cert = </etc/pki/dovecot/certs/mail.tutech.de.crt_chain ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!EXPORT ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it syslog_facility = local6 userdb { args = /etc/dovecot/dovecot-ldap-userdb.conf.ext driver = ldap } protocol lmtp { mail_plugins = acl zlib mail_log notify sieve } protocol imap { mail_max_userip_connections = 100 mail_plugins = acl zlib mail_log notify imap_zlib imap_acl rawlog_dir = /tmp/rawlog/%u } --- snip ---
Thanks for the help!
Kind regards Thomas
-- Bad pun of the week: The formula 1 control computer suffered from a race condition
-- C is quirky, flawed, and an enormous success. - Dennis M. Ritchie.