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
> 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/alessiceThank you for your report. We'll look into it. Aki
On 03.09.2016 15:19, Aki Tuomi wrote:>> 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). >> >> 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. > > AkiFixed in https://github.com/dovecot/core/commit/e525e4215127aeb76a3b5a31f1a0d24a68f37c68 Aki