Doveadm error during store - segfault clucene
Stephan Bosch
stephan at rename-it.nl
Thu Oct 3 23:36:13 EEST 2019
On 02/10/2019 10:12, Domenico Pastore via dovecot wrote:
>
>
> Hi,
> during the store of the messages, I find the following doveadm errors:
>
> 2019-10-02 09:22:19 auth: Debug:
> ldap(test.pop at test.xxx.it,10.11.47.60): result:
> mailMessageStore=1/1/2/0/8/7/2/1120872_91093 mailQuota=52428800;
> mailQuota,mailMessageStore unused
> 2019-10-02 09:22:19 auth: Debug:
> ldap(test.pop at test.xxx.it,10.11.47.60): Finished userdb lookup
> 2019-10-02 09:22:19 auth: Debug: userdb out: USER 1
> test.pop at test.xxx.it
> home=/store/mailbox/mailbox_test/1/1/2/0/8/7/2/1120872_91093
> quota_rule=*:bytes=52428800 mail_plugins+=
> *2019-10-02 09:22:19
> doveadm(test.pop at test.xxx.it)<180667><MO3BGytQlF27wQIAxhuf8Q>: Fatal:
> master: service(doveadm): child 180667 killed with signal 11 (core
> dumped)*
> 2019-10-02 09:22:19 auth: Debug: master in: USER 1
> test.pop at test.xxx.it service=doveadm lip=192.160.10.100
> lport=924 rip=10.11.47.60 rport=56515
> 2019-10-02 09:22:19 auth: Debug:
> ldap(test.pop at test.xxx.it,10.11.47.60): Performing userdb lookup
>
> This problem occurs only with the quota plugin enabled.
>
> Can you help me?
>
The GDB trace tells me this is most likely a Lucene bug. There is very
little Dovecot can mess up at library deinit like that.
Regards,
Stephan.
> Best regards
>
> Domenico
>
> -----------------------------------------------------
>
> (gdb)
> #0 clear (this=0x0) at
> /usr/src/debug/clucene-core-2.3.3.4/src/core/CLucene/util/VoidMap.h:123
> #1 lucene::search::FieldSortedHitQueue::_shutdown () at
> /usr/src/debug/clucene-core-2.3.3.4/src/core/CLucene/search/FieldSortedHitQueue.cpp:60
> #2 0x00007f4b37a62e96 in _lucene_shutdown () at
> /usr/src/debug/clucene-core-2.3.3.4/src/core/CLucene/StdHeader.cpp:33
> #3 0x00007f4b3b2f2fbb in module_dir_deinit (modules=<optimized out>)
> at module-dir.c:578
> #4 0x00007f4b3b2f3001 in module_dir_unload
> (modules=modules at entry=0x7f4b3b8e1380 <mail_storage_service_modules>)
> at module-dir.c:590
> #5 0x00007f4b3b5dd264 in mail_storage_service_deinit
> (_ctx=_ctx at entry=0x55ea409b7838) at mail-storage-service.c:1730
> #6 0x000055ea3f4a3d35 in doveadm_mail_cmd_exec
> (ctx=ctx at entry=0x55ea409b77f8, wildcard_user=wildcard_user at entry=0x0)
> at doveadm-mail.c:673
> #7 0x000055ea3f4a4bbd in doveadm_cmd_ver2_to_mail_cmd_wrapper
> (cctx=<optimized out>) at doveadm-mail.c:1144
> #8 0x000055ea3f4b5c98 in doveadm_cmd_run_ver2 (argc=argc at entry=1,
> argv=argv at entry=0x55ea40997150, cctx=cctx at entry=0x7fff9a1cb990) at
> doveadm-cmd.c:574
> #9 0x000055ea3f4ba020 in doveadm_cmd_server_run_ver2
> (cctx=0x7fff9a1cb990, argv=0x55ea40997150, argc=1,
> conn=0x55ea409ebbd8) at client-connection-tcp.c:178
> #10 doveadm_cmd_handle (cctx=0x7fff9a1cb990, argv=0x55ea40997150,
> argc=1, cmd_name=<optimized out>, conn=0x55ea409ebbd8) at
> client-connection-tcp.c:342
> #11 client_handle_command (args=<optimized out>, conn=0x55ea409ebbd8)
> at client-connection-tcp.c:415
> #12 client_connection_tcp_input (conn=0x55ea409ebbd8) at
> client-connection-tcp.c:561
> #13 0x00007f4b3b2e855f in io_loop_call_io (io=0x55ea409c5b10) at
> ioloop.c:704
> #14 0x00007f4b3b2e9fa3 in io_loop_handler_run_internal
> (ioloop=ioloop at entry=0x55ea4099fcb0) at ioloop-epoll.c:221
> #15 0x00007f4b3b2e8666 in io_loop_handler_run
> (ioloop=ioloop at entry=0x55ea4099fcb0) at ioloop.c:756
> #16 0x00007f4b3b2e8888 in io_loop_run (ioloop=0x55ea4099fcb0) at
> ioloop.c:729
> #17 0x00007f4b3b25b2d3 in master_service_run (service=0x55ea4099fb40,
> callback=callback at entry=0x55ea3f4bd260 <client_connected>) at
> master-service.c:781
> #18 0x000055ea3f493421 in main (argc=1, argv=0x55ea4099f890) at main.c:151
>
> (gdb) bt full
> #0 clear (this=0x0) at
> /usr/src/debug/clucene-core-2.3.3.4/src/core/CLucene/util/VoidMap.h:123
> No locals.
> #1 lucene::search::FieldSortedHitQueue::_shutdown () at
> /usr/src/debug/clucene-core-2.3.3.4/src/core/CLucene/search/FieldSortedHitQueue.cpp:60
> No locals.
> #2 0x00007f4b37a62e96 in _lucene_shutdown () at
> /usr/src/debug/clucene-core-2.3.3.4/src/core/CLucene/StdHeader.cpp:33
> No locals.
> #3 0x00007f4b3b2f2fbb in module_dir_deinit (modules=<optimized out>)
> at module-dir.c:578
> _data_stack_cur_id = 4
> module = 0x55ea40a048b0
> rev = 0x55ea4099ac18
> i = <optimized out>
> count = 6
> #4 0x00007f4b3b2f3001 in module_dir_unload
> (modules=modules at entry=0x7f4b3b8e1380 <mail_storage_service_modules>)
> at module-dir.c:590
> module = <optimized out>
> next = <optimized out>
> #5 0x00007f4b3b5dd264 in mail_storage_service_deinit
> (_ctx=_ctx at entry=0x55ea409b7838) at mail-storage-service.c:1730
> ctx = 0x55ea409f0bf8
> #6 0x000055ea3f4a3d35 in doveadm_mail_cmd_exec
> (ctx=ctx at entry=0x55ea409b77f8, wildcard_user=wildcard_user at entry=0x0)
> at doveadm-mail.c:673
> cctx = <optimized out>
> cli = <optimized out>
> ret = <optimized out>
> error = 0x7f4b3b22d2f7 <__x86_return_thunk+5>
> "\363\220\017\256\350\353\371H\215d$\b\303\350\a"
> #7 0x000055ea3f4a4bbd in doveadm_cmd_ver2_to_mail_cmd_wrapper
> (cctx=<optimized out>) at doveadm-mail.c:1144
> mctx = 0x55ea409b77f8
> wildcard_user = <optimized out>
> fieldstr = 0x55ea40997310 "͒\t7K\177"
> pargv = {arr = {buffer = 0x55ea409b7a28, element_size = 8}, v
> = 0x55ea409b7a28, v_modifiable = 0x55ea409b7a28}
> full_args = {arr = {buffer = <optimized out>, element_size =
> 8}, v = <optimized out>, v_modifiable = <optimized out>}
> i = <optimized out>
> cli = <optimized out>
> tcp_server = <optimized out>
> mail_cmd = {alloc = 0x7f4b37098d00 <cmd_quota_get_alloc>, name
> = 0x7f4b370992b6 "quota get", usage_args = 0x7f4b37099291 ""}
> dashdash = 0x55ea3f4e07ca "--"
> args_pos = 1
> #8 0x000055ea3f4b5c98 in doveadm_cmd_run_ver2 (argc=argc at entry=1,
> argv=argv at entry=0x55ea40997150, cctx=cctx at entry=0x7fff9a1cb990) at
> doveadm-cmd.c:574
> param = <optimized out>
> pargv = {arr = {buffer = 0x55ea40997410, element_size = 104},
> v = 0x55ea40997410, v_modifiable = 0x55ea40997410}
> opts = {arr = {buffer = <optimized out>, element_size = 32}, v
> = <optimized out>, v_modifiable = <optimized out>}
> pargc = 4
> c = -1
> li = 102607314
> pool = 0x55ea40997240
> optbuf = 0x55ea40997258
> __func__ = "doveadm_cmd_run_ver2"
> #9 0x000055ea3f4ba020 in doveadm_cmd_server_run_ver2
> (cctx=0x7fff9a1cb990, argv=0x55ea40997150, argc=1,
> conn=0x55ea409ebbd8) at client-connection-tcp.c:178
> No locals.
> #10 doveadm_cmd_handle (cctx=0x7fff9a1cb990, argv=0x55ea40997150,
> argc=1, cmd_name=<optimized out>, conn=0x55ea409ebbd8) at
> client-connection-tcp.c:342
> mail_cmd = <optimized out>
> mctx = <optimized out>
> cmd_ver2 = <optimized out>
> prev_ioloop = 0x55ea4099fcb0
> cmd = 0x0
> #11 client_handle_command (args=<optimized out>, conn=0x55ea409ebbd8)
> at client-connection-tcp.c:415
> cctx = {cmd = 0x55ea409b53d8, argc = 4, argv = 0x55ea40997448,
> username = 0x55ea40997119 "test.pop at test.xxx.it", local_ip = {family =
> 2, u = {ip6 = {__in6_u = {
> __u6_addr8 = "\300\240\nd", '\000' <repeats 11
> times>, __u6_addr16 = {41152, 25610, 0, 0, 0, 0, 0, 0}, __u6_addr32 =
> {1678418112, 0, 0, 0}}}, ip4 = {
> s_addr = 1678418112}}}, remote_ip = {family = 2, u =
> {ip6 = {__in6_u = {__u6_addr8 = "\n\v/<", '\000' <repeats 11 times>,
> __u6_addr16 = {2826, 15407, 0, 0, 0, 0, 0,
> 0}, __u6_addr32 = {1009715978, 0, 0, 0}}}, ip4 =
> {s_addr = 1009715978}}}, local_port = 924, remote_port = 54042,
> conn_type = DOVEADM_CONNECTION_TYPE_TCP,
> input = 0x55ea409b0db0, output = 0x55ea409b6cf0}
> flags = <optimized out>
> cmd_name = <optimized out>
> argc = <optimized out>
> ---Type <return> to continue, or q <return> to quit---
> #12 client_connection_tcp_input (conn=0x55ea409ebbd8) at
> client-connection-tcp.c:561
> args = <optimized out>
> _data_stack_cur_id = 3
> line = <optimized out>
> ok = true
> minor = 0
> #13 0x00007f4b3b2e855f in io_loop_call_io (io=0x55ea409c5b10) at
> ioloop.c:704
> ioloop = 0x55ea4099fcb0
> t_id = 2
> __func__ = "io_loop_call_io"
> #14 0x00007f4b3b2e9fa3 in io_loop_handler_run_internal
> (ioloop=ioloop at entry=0x55ea4099fcb0) at ioloop-epoll.c:221
> ctx = 0x55ea409a57a0
> events = <optimized out>
> list = 0x55ea409e9e80
> io = <optimized out>
> tv = {tv_sec = 2147483, tv_usec = 0}
> events_count = <optimized out>
> msecs = <optimized out>
> ret = 1
> i = 0
> call = <optimized out>
> __func__ = "io_loop_handler_run_internal"
> #15 0x00007f4b3b2e8666 in io_loop_handler_run
> (ioloop=ioloop at entry=0x55ea4099fcb0) at ioloop.c:756
> __func__ = "io_loop_handler_run"
> #16 0x00007f4b3b2e8888 in io_loop_run (ioloop=0x55ea4099fcb0) at
> ioloop.c:729
> __func__ = "io_loop_run"
> #17 0x00007f4b3b25b2d3 in master_service_run (service=0x55ea4099fb40,
> callback=callback at entry=0x55ea3f4bd260 <client_connected>) at
> master-service.c:781
> No locals.
> #18 0x000055ea3f493421 in main (argc=1, argv=0x55ea4099f890) at main.c:151
> set_roots = {0x7f4b3b57cd00
> <master_service_ssl_setting_parser_info>, 0x55ea3f7026a0
> <doveadm_setting_parser_info>, 0x0}
> input = {roots = 0x7fff9a1cbb70, config_path = 0x0,
> preserve_environment = false, preserve_user = false, preserve_home =
> false, never_exec = false, use_sysexits = false,
> parse_full_config = false, module = 0x55ea3f4dcd3a
> "doveadm", service = 0x55ea3f4dcd3a "doveadm", username = 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_name = 0x0}
> output = {specific_services = 0x0, service_uses_local = false,
> service_uses_remote = false, used_local = false, used_remote = false,
> permission_denied = false}
> error = 0x7f4b3aca3ca7 "__vdso_getcpu"
> c = <optimized out>
> (gdb)
>
>
> # 2.3.7.2 (3c910f64b): /new_config/dovecot/dovecot_test/dovecot.conf
> # Pigeonhole version 0.5.7.2 (7372921a)
> # OS: Linux 3.10.0-957.21.3.el7.x86_64 x86_64 CentOS Linux release
> 7.6.1810 (Core)
> # Hostname: pop10
> auth_debug = yes
> auth_master_user_separator = *
> auth_username_format =
> base_dir = /data/dovecot/var/run/dovecot_test
> default_vsz_limit = 768 M
> dict {
> sqlquota = mysql:/new_config/dovecot/common/dovecot-dict-sql.conf.ext
> }
> disable_plaintext_auth = no
> doveadm_password = # hidden, use -P to show it
> first_valid_gid = 101
> first_valid_uid = 102
> imap_id_send =
> import_environment = TZ
> info_log_path = /LOGS/dovecot/dovecot_test.log
> instance_name = dovecot_test
> listen = dovecot_test
> log_path = /LOGS/dovecot/dovecot_test.log
> log_timestamp = "%Y-%m-%d %H:%M:%S "
> mail_gid = 101
> mail_location = maildir:%h/Maildir
> mail_max_userip_connections = 50
> mail_plugins = quota mail_log notify virtual fts fts_lucene
> mail_uid = 102
> maildir_broken_filename_sizes = yes
> 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 vnd.dovecot.debug
> mbox_write_locks = fcntl
> namespace {
> hidden = yes
> list = no
> location =
> virtual:/new_config/dovecot/common/virtual:INDEX=~/virtual:SUBSCRIPTIONS=.subscriptions/%u
> prefix = Messaggi in arrivo.
> separator = .
> subscriptions = no
> }
> namespace inbox {
> inbox = 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 = .
> subscriptions = yes
> type = private
> }
> passdb {
> args = /new_config/dovecot/common/passwd.masterusers
> driver = passwd-file
> master = yes
> }
> passdb {
> args = /new_config/dovecot/dovecot_test/dovecot-ldap.conf
> driver = ldap
> }
> passdb {
> args = /new_config/dovecot/common/dovecot-ldap-multiuser.conf
> driver = ldap
> master = yes
> }
> passdb {
> args = /new_config/dovecot/common/dovecot-ldap-webmaillight.conf.ext
> driver = ldap
> master = yes
> }
> plugin {
> fts = lucene
> fts_autoindex = yes
> fts_autoindex_max_recent = 1000
> fts_lucene =
> mail_log_events = delete undelete expunge copy mailbox_delete
> mailbox_rename flag_change save mailbox_create
> mail_log_fields = uid box msgid size flags
> quota = dict:User quota::proxy::sqlquota
> quota_rule2 = INBOX.Trash:storage=+100M
> sieve_default = /new_config/dovecot/common/default.sieve
> sieve_extensions = +vnd.dovecot.debug
> }
> postmaster_address = posta at fooo.it
> service anvil {
> client_limit = 8000
> }
> service auth {
> client_limit = 12000
> unix_listener auth-userdb {
> mode = 0600
> }
> }
> service dict {
> process_limit = 7500
> process_min_avail = 10
> unix_listener dict {
> mode = 0600
> user = dovecot
> }
> }
> service doveadm {
> chroot =
> client_limit = 1
> drop_priv_before_exec = no
> executable = doveadm-server
> extra_groups =
> group =
> idle_kill = 0
> inet_listener {
> port = 924
> }
> privileged_group =
> process_limit = 0
> process_min_avail = 10
> protocol =
> service_count = 100
> type =
> unix_listener doveadm-server {
> group =
> mode = 0600
> user =
> }
> user =
> }
> service imap-login {
> inet_listener imap {
> port = 143
> }
> inet_listener imaps {
> port = 993
> ssl = yes
> }
> process_limit = 5000
> process_min_avail = 10
> }
> service imap {
> drop_priv_before_exec = yes
> process_limit = 5000
> process_min_avail = 10
> }
> service lmtp {
> inet_listener lmtp {
> port = 24
> }
> process_limit = 2500
> process_min_avail = 10
> }
> service managesieve-login {
> inet_listener sieve {
> port = 4190
> }
> process_min_avail = 0
> service_count = 1
> vsz_limit = 64 M
> }
> service managesieve {
> drop_priv_before_exec = yes
> process_limit = 1024
> }
> service pop3-login {
> inet_listener pop3 {
> port = 110
> }
> inet_listener pop3s {
> port = 995
> ssl = yes
> }
> process_limit = 1000
> process_min_avail = 5
> }
> service pop3 {
> drop_priv_before_exec = yes
> process_limit = 1000
> process_min_avail = 5
> }
> ssl_cert = </new_config/dovecot/common/certs/dovecot.pem
> ssl_key = # hidden, use -P to show it
> userdb {
> args = /new_config/dovecot/dovecot_test/dovecot-ldap.conf
> driver = ldap
> }
> protocol lmtp {
> mail_plugins = quota mail_log notify sieve virtual
> }
> protocol lda {
> mail_plugins = quota mail_log notify sieve virtual
> }
> protocol imap {
> mail_plugins = quota imap_quota mail_log notify virtual
> }
> protocol pop3 {
> mail_plugins = quota mail_log notify virtual
> pop3_uidl_format = UID%u-%v
> }
>
>
More information about the dovecot
mailing list