Panic: data stack: Out of memory when allocating bytes
Josef 'Jeff' Sipek
jeff.sipek at dovecot.fi
Tue Jan 23 21:07:11 EET 2018
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 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
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 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
--
C is quirky, flawed, and an enormous success.
- Dennis M. Ritchie.
More information about the dovecot
mailing list