Panic: data stack: Out of memory when allocating bytes

Josef 'Jeff' Sipek jeff.sipek at dovecot.fi
Tue Jan 23 21:03:27 EET 2018


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 at 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:

0. Does this user have any unusually large emails?
1. Do you have any idea what the imap process was doing at the time of the
   allocation failure?
2. You snipped all the important parts of the back trace. :)  It *starts* on
   the line:
	#0  0x00007f73f1386495 in raise () from /lib64/libc.so.6
   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 at 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


More information about the dovecot mailing list