doveadm quota recalc returns a Segmentation fault
Aki Tuomi
aki.tuomi at dovecot.fi
Sat Sep 3 12:19:45 UTC 2016
> On September 3, 2016 at 1:30 PM Alessio Cecchi <alessio at skye.it> wrote:
>
>
> Hi,
>
> with the latest dovecot-ee version (2.2.25.4 (5cb7c97)) if I run
> “doveadm quota recalc -u alessio at skye.it” dovecot return a “Segmentation
> fault” (but the quota is update fine). Since dovecot version 2.2.24.3
> (55cdc32) works fine.
>
> This is my quota backends configuration:
>
> plugin {
> quota = maildir:UserQuota
> quota2 = dict:Quota Usage::noenforcing:proxy::sqlquota
> }
> dict {
> sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
> }
>
> I found that if I comment the line “quota2 = dict:…” doveadm quota
> recalc works fine. I have two quota backends because with dict I can
> store everybody's current quota usage in a SQL database for fast
> retrieving (like quota_clone plugin but I cannot switch to it
> immediately).
>
> The backtrace:
>
> # gdb --args doveadm quota recalc -u alessio at skye.it
> GNU gdb (GDB) Red Hat Enterprise Linux (7.2-90.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/bin/doveadm...Reading symbols from
> /usr/lib/debug/usr/bin/doveadm.debug...done.
> done.
>
> (gdb) run
> Starting program: /usr/bin/doveadm quota recalc -u alessio at skye.it
> [Thread debugging using libthread_db enabled]
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff73ed245 in io_loop_handler_run (ioloop=0x1006b1930) at
> ioloop.c:612
> 612 io_loop_handler_run_internal(ioloop);
> Missing separate debuginfos, use: debuginfo-install
> bzip2-libs-1.0.5-7.el6_0.x86_64 cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64
> dovecot-ee-pigeonhole-2.2.25.4-4.x86_64 glibc-2.12-1.192.el6.x86_64
> nspr-4.11.0-1.el6.x86_64 nss-3.21.0-8.el6.x86_64
> nss-softokn-freebl-3.14.3-23.3.el6_8.x86_64 nss-util-3.21.0-2.el6.x86_64
> openldap-2.4.40-12.el6.x86_64 zlib-1.2.3-29.el6.x86_64
> (gdb) bt full
> #0 0x00007ffff73ed245 in io_loop_handler_run (ioloop=0x1006b1930) at
> ioloop.c:612
> No locals.
> #1 0x00007ffff73ed3e8 in io_loop_run (ioloop=0x6b1930) at ioloop.c:588
> __FUNCTION__ = "io_loop_run"
> #2 0x00007ffff73ac45c in client_dict_wait (_dict=0x6b15f0) at
> dict-client.c:653
> dict = 0x6b15f0
> #3 0x00007ffff636f85f in dict_quota_deinit (_root=<value optimized
> out>) at quota-dict.c:106
> root = 0x6b12f0
> __FUNCTION__ = "dict_quota_deinit"
> #4 0x00007ffff636d326 in quota_root_deinit (root=0x6b12f0) at
> quota.c:279
> pool = 0x6b1400
> #5 0x00007ffff636d381 in quota_deinit (_quota=0x6aeae8) at quota.c:389
> quota = 0x6ac0b0
> roots = <value optimized out>
> i = <value optimized out>
> count = 2
> #6 0x00007ffff637240d in quota_user_deinit (user=0x6ac7b0) at
> quota-storage.c:538
> quser = 0x6aead8
> quota_set = 0x6b07c0
> #7 0x00007ffff76a9b52 in mail_user_unref (_user=<value optimized out>)
> at mail-user.c:174
> user = 0x6ac7b0
> __FUNCTION__ = "mail_user_unref"
> #8 0x00000000004216b4 in doveadm_mail_next_user (ctx=0x69bbe0,
> cctx=<value optimized out>, error_r=0x7fffffffe1c0)
> at doveadm-mail.c:403
> input = {module = 0x0, service = 0x4569d9 "doveadm", username =
> 0x681288 "alessio at skye.it", session_id = 0x0,
> session_id_prefix = 0x0, local_ip = {family = 0, u = {ip6 =
> {__in6_u = {__u6_addr8 = '\000' <repeats 15 times>,
> __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 =
> {0, 0, 0, 0}}}, ip4 = {s_addr = 0}}}, remote_ip = {
> family = 0, u = {ip6 = {__in6_u = {__u6_addr8 = '\000'
> <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
> __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr = 0}}},
> local_port = 0, remote_port = 0, userdb_fields = 0x0,
> flags_override_add = 0, flags_override_remove = 0,
> no_userdb_lookup = 0, debug = 0}
> error = <value optimized out>
> ip = <value optimized out>
> ret = <value optimized out>
> __FUNCTION__ = "doveadm_mail_next_user"
> #9 0x00000000004218dc in doveadm_mail_cmd_exec (ctx=0x69bbe0,
> cctx=0x7fffffffe400, wildcard_user=0x0) at doveadm-mail.c:592
> ret = <value optimized out>
> error = <value optimized out>
> #10 0x0000000000422c7d in doveadm_cmd_ver2_to_mail_cmd_wrapper
> (cctx=0x7fffffffe400) at doveadm-mail.c:1053
> mctx = 0x69bbe0
> wildcard_user = <value optimized out>
> fieldstr = 0x456c52 "-u"
> i = <value optimized out>
> ---Type <return> to continue, or q <return> to quit---
> mail_cmd = {alloc = 0x7ffff573fba0 <cmd_quota_recalc_alloc>,
> name = 0x7ffff573ffc5 "quota recalc",
> usage_args = 0x7ffff573ff7f ""}
> args_pos = <value optimized out>
> #11 0x00000000004303b6 in doveadm_cmd_run_ver2 (argc=3, argv=0x6883a0,
> cctx=0x7fffffffe400) at doveadm-cmd.c:523
> param = <value optimized out>
> pargv = {arr = {buffer = 0x680a28, element_size = 104}, v =
> 0x680a28, v_modifiable = 0x680a28}
> pargc = <value optimized out>
> c = <value optimized out>
> li = 32767
> pool = 0x680858
> optbuf = 0x680870
> __FUNCTION__ = "doveadm_cmd_run_ver2"
> #12 0x0000000000430467 in doveadm_cmd_try_run_ver2 (cmd_name=<value
> optimized out>, argc=3, argv=0x6883a0, cctx=0x7fffffffe400)
> at doveadm-cmd.c:446
> cmd = <value optimized out>
> #13 0x0000000000432bdc in main (argc=4, argv=0x688398) at doveadm.c:379
> cctx = {cmd = 0x69abf8, argc = 4, argv = 0x680a60, username =
> 0x681288 "alessio at skye.it", cli = true, tcp_server = false,
> local_ip = {family = 0, u = {ip6 = {__in6_u = {__u6_addr8 =
> '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0,
> 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr =
> 0}}}, remote_ip = {family = 0, u = {ip6 = {__in6_u = {
> __u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 =
> {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
> ip4 = {s_addr = 0}}}, local_port = 0, remote_port = 0,
> conn = 0x0}
> cmd_name = <value optimized out>
> quick_init = false
> c = <value optimized out>
> (gdb)
>
> I hope can be fixed.
> Thanks
> --
> Alessio Cecchi
> Postmaster AT http://www.qboxmail.it
> http://www.linkedin.com/in/alessice
Thank you for your report. We'll look into it.
Aki
More information about the dovecot
mailing list