[Dovecot] Again: pop3: Panic: Trying to allocate 0 bytes

Urban Loesch bind at enas.net
Tue May 6 12:23:42 UTC 2014


Hi,

in April I wrote an e-mail to the list, that with dovecot 2.2.12 on debian squeeze some pop3-sessions were killed sometimes. But I got no anwser from
the list. At this was not a urgend problem and it happend very rarely it was not a big problem.

But today it happend again more several times and I have no idea why.

I have the following in my errorlog:

...
May  6 13:26:52 mailstore dovecot: pop3(user at domain.com pid:48986 session:<bLxBhrn4ywBCNkO3>): Panic: Trying to allocate 0 bytes
May  6 13:26:52 mailstore dovecot: pop3(user at domain.com pid:48986 session:<bLxBhrn4ywBCNkO3>): Error: Raw backtrace:
/usr/lib/dovecot/libdovecot.so.0(+0x6c38a) [0x7f8ed4c7538a] -> /usr/lib/dovecot/libdovecot.so.0(+0x6c406) [0x7f8ed4c75406] ->
/usr/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f8ed4c2e1af] -> /usr/lib/dovecot/libdovecot.so.0(+0x81e1b) [0x7f8ed4c8ae1b] -> dovecot/pop3()
[0x4077f0] -> dovecot/pop3(client_command_execute+0x9d) [0x407d0d] -> dovecot/pop3(client_handle_input+0x80) [0x405810] ->
/usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x4e) [0x7f8ed4c856ae] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0xaf)
[0x7f8ed4c8682f] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x9) [0x7f8ed4c85739] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x38)
[0x7f8ed4c857c8] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f8ed4c32f63] -> dovecot/pop3(main+0x257) [0x404a67] ->
/lib/libc.so.6(__libc_start_main+0xfd) [0x7f8ed48c5c8d] -> dovecot/pop3() [0x4045b9]
May  6 13:26:52 mailstore dovecot: pop3(user at domain.com pid:48986 session:<bLxBhrn4ywBCNkO3>): Fatal: master: service(pop3): child 48986 killed with
signal 6 (core dumped)
...

I got a coredump.
Here comes the backtrace:

...
(gdb) bt full
#0  0x00007f8ed48d91b5 in raise () from /lib/libc.so.6
No symbol table info available.
#1  0x00007f8ed48dbfc0 in abort () from /lib/libc.so.6
No symbol table info available.
#2  0x00007f8ed4c75380 in default_fatal_finish (type=<value optimized out>, status=0) at failures.c:193
        backtrace = 0x1c180c8 "/usr/lib/dovecot/libdovecot.so.0(+0x6c38a) [0x7f8ed4c7538a] -> /usr/lib/dovecot/libdovecot.so.0(+0x6c406)
[0x7f8ed4c75406] -> /usr/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f8ed4c2e1af] -> /usr/lib/d"...
#3  0x00007f8ed4c75406 in i_internal_fatal_handler (ctx=0x7fff547b5940, format=<value optimized out>, args=<value optimized out>) at failures.c:657
        status = 0
#4  0x00007f8ed4c2e1af in i_panic (format=0xbf5a <Address 0xbf5a out of bounds>) at failures.c:267
        ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 0x0}
        args = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7fff547b5a10, reg_save_area = 0x7fff547b5950}}
#5  0x00007f8ed4c8ae1b in pool_system_malloc (pool=<value optimized out>, size=0) at mempool-system.c:81
No locals.
#6  0x00000000004077f0 in client_uidls_save (client=0x1c42990, seq=0) at pop3-commands.c:798
        str = <value optimized out>
        permanent_uidl = <value optimized out>
        search_ctx = 0x1c230d0
        mail = <value optimized out>
        prev_uidls = {_table = 0x1c23330, _key = 0x1c23330 "\300o\355Ԏ\177", _keyp = 0x1c23330, _const_key = 0x1c23330 "\300o\355Ԏ\177", _value =
0x1c23330, _valuep = 0x1c23330}
        search_args = 0x0
        seq_uidls = 0x60a4d8
        uidl = <value optimized out>
        wanted_fields = <value optimized out>
#7  cmd_uidl_init (client=0x1c42990, seq=0) at pop3-commands.c:842
        ctx = <value optimized out>
        search_args = <value optimized out>
        wanted_fields = <value optimized out>
#8  0x0000000000407d0d in cmd_uidl (client=0x1c42990, name=<value optimized out>, args=0x408820 "") at pop3-commands.c:873
        ctx = <value optimized out>
        seq = <value optimized out>
#9  client_command_execute (client=0x1c42990, name=<value optimized out>, args=0x408820 "") at pop3-commands.c:938
No locals.
#10 0x0000000000405810 in client_handle_input (client=0x1c42990) at pop3-client.c:739
        _data_stack_cur_id = 3
        line = <value optimized out>
        args = 0x408820 ""
        ret = <value optimized out>
#11 0x00007f8ed4c856ae in io_loop_call_io (io=0x1c414a0) at ioloop.c:441
        ioloop = 0x1c20740
        t_id = 2
        __FUNCTION__ = "io_loop_call_io"
#12 0x00007f8ed4c8682f in io_loop_handler_run_internal (ioloop=<value optimized out>) at ioloop-epoll.c:220
        ctx = 0x1c20aa0
        event = 0x1c21910
        list = 0x1c22500
        io = 0xbf5a
        tv = {tv_sec = 9, tv_usec = 999120}
        msecs = <value optimized out>
        ret = 1
        i = 0
        call = false
        __FUNCTION__ = "io_loop_handler_run_internal"
#13 0x00007f8ed4c85739 in io_loop_handler_run (ioloop=0xbf5a) at ioloop.c:488
No locals.
#14 0x00007f8ed4c857c8 in io_loop_run (ioloop=0x1c20740) at ioloop.c:465
        __FUNCTION__ = "io_loop_run"
#15 0x00007f8ed4c32f63 in master_service_run (service=0x1c205d0, callback=0xbf5a) at master-service.c:566
No locals.
#16 0x0000000000404a67 in main (argc=1, argv=0x1c20390) at main.c:277
        set_roots = {0x409480, 0x0}
        login_set = {auth_socket_path = 0x1c18050 "/var/run/dovecot/auth-master", postlogin_socket_path = 0x0, postlogin_timeout_secs = 60, callback =
0x404c40 <login_client_connected>,
          failure_callback = 0x404bf0 <login_client_failed>, request_auth_token = 0}
        service_flags = <value optimized out>
        storage_service_flags = MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT
        username = 0x0
---Type <return> to continue, or q <return> to quit---
        c = <value optimized out>
...

Can you help to resolve this issue?

many Thanks
Urban Loesch

--------------------- doveconf -n ---------------------

# 2.2.12 (16212e6d4fd4): /etc/dovecot/dovecot.conf
# OS: Linux 3.4.67-vs2.3.3.9-rol-em64t-efigpt x86_64 Debian 6.0.9 ext4
auth_cache_negative_ttl = 0
auth_cache_size = 40 M
auth_cache_ttl = 1 weeks
auth_mechanisms = plain login
deliver_log_format = msgid=%m: %$ %p %w
disable_plaintext_auth = no
info_log_path = syslog
login_trusted_networks = $INTERNAL_IPS
mail_gid = mailstore
mail_location = mdbox:/home/vmail/%d/%n
mail_log_prefix = "%s(%u pid:%p session:<%{session}>): "
mail_plugins = " quota mail_log notify acl zlib stats virtual"
mail_uid = mailstore
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 ihave duplicate imapflags notify
mdbox_rotate_size = 10 M
namespace {
  list = children
  location = mdbox:/home/vmail/%%d/%%n
  prefix = shared/%%u/
  separator = /
  subscriptions = no
  type = shared
}
namespace {
  hidden = no
  inbox = no
  list = children
  location = virtual:/home/virtual:INDEX=~/virtual
  prefix = [rolmail]/
  separator = /
  subscriptions = yes
  type = private
}
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Items" {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  mailbox [mail]/All {
    auto = no
    special_use = \All
  }
  prefix =
  separator = /
  type = private
}
passdb {
  args = /etc/dovecot/dovecot-sql-account.conf
  driver = sql
}
plugin {
  acl = vfile
  acl_shared_dict = file:/home/vmail/%d/shared-mailboxes
  mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename
  mail_log_fields = uid box msgid size from
  mail_log_group_events = no
  quota = dict:Storage used::file:%h/dovecot-quota
  quota_rule2 = Trash:storage=+100M
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
  sieve_extensions = +notify +imapflags
  sieve_max_redirects = 10
  stats_command_min_time = 1 mins
  stats_domain_min_time = 12 hours
  stats_ip_min_time = 12 hours
  stats_memory_limit = 16 M
  stats_refresh = 30 secs
  stats_session_min_time = 15 mins
  stats_track_cmds = no
  stats_user_min_time = 1 hours
  zlib_save = gz
  zlib_save_level = 9
}
protocols = imap pop3 lmtp sieve
service auth {
  unix_listener auth-userdb {
    group = mailstore
    mode = 0660
    user = root
  }
}
service imap-login {
  inet_listener imap {
    port = 143
  }
  process_limit = 48
  process_min_avail = 3
  service_count = 1
}
service imap {
  process_limit = 48
  process_min_avail = 2
  service_count = 1
}
service lmtp {
  inet_listener lmtp {
    port = 24
  }
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0666
    user = postfix
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  process_limit = 16
  process_min_avail = 2
  service_count = 1
}
service pop3 {
  process_limit = 16
  process_min_avail = 2
  service_count = 1
}
service quota-warning {
  executable = script /usr/local/rol/dovecot/quota-warning.sh
  unix_listener quota-warning {
    user = mailstore
  }
  user = mailstore
}
service stats {
  fifo_listener stats-mail {
    mode = 0600
    user = mailstore
  }
}
ssl = no
ssl_cert = </etc/dovecot/certs/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
userdb {
  args = /etc/dovecot/dovecot-sql-account.conf
  driver = sql
}
protocol lmtp {
  mail_fsync = optimized
  mail_plugins = " quota mail_log notify acl zlib stats virtual sieve zlib"
}
protocol imap {
  imap_client_workarounds = tb-extra-mailbox-sep
  imap_id_log = *
  imap_logout_format = bytes=%i/%o session=<%{session}>
  mail_max_userip_connections = 20
  mail_plugins = " quota mail_log notify acl zlib stats virtual imap_quota imap_acl imap_zlib imap_stats"
}
protocol pop3 {
  mail_plugins = " quota mail_log notify acl zlib stats virtual"
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
  pop3_lock_session = yes
  pop3_logout_format = bytes_sent=%o top=%t/%p, retr=%r/%b, del=%d/%m, size=%s uidl_hash=%u session=<%{session}>
  pop3_reuse_xuidl = yes
}


More information about the dovecot mailing list