Bug: indexer-worker segfaults with fts_xapian 1.2.5
Core was generated by `dovecot/indexer-worker'. Program terminated with signal 11, Segmentation fault. #0 0x00007f30f7ad056d in __exchange_and_add (__val=-1, __mem=0xfffffffffffffff8) at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/ext/atomicity.h:49 49 { return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); }
(gdb) bt full #0 0x00007f30f7ad056d in __exchange_and_add (__val=-1, __mem=0xfffffffffffffff8) at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/ext/atomicity.h:49 No locals. #1 __exchange_and_add_dispatch (__val=-1, __mem=0xfffffffffffffff8) at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/ext/atomicity.h:82 No locals. #2 std::string::_Rep::_M_dispose (this=0xffffffffffffffe8, __a=...) at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/basic_string.h:246 No locals. #3 0x00007f30f7b3407e in _M_dispose (__a=..., this=<optimized out>) at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/basic_string.tcc:254 No locals. #4 std::string::assign (this=this@entry=0x55c7b93e0168, __str="return-path") at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/basic_string.tcc:250 __a = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>} #5 0x00007f30fa8776ce in operator= (__str="return-path", this=0x55c7b93e0168) at /usr/include/c++/4.8.2/bits/basic_string.h:547 No locals. #6 fts_backend_xapian_update_set_build_key (_ctx=0x55c7b93e0140, key=0x7ffc1ba2c380) at fts-backend-xapian.cpp:303 ctx = 0x55c7b93e0140 i = <optimized out> f2 = "return-path" backend = <optimized out> field = 0x55c7b943fb5f "RETURN-PATH" j = 11 #7 0x00007f30fb0b8cda in fts_backend_update_set_build_key (ctx=0x55c7b93e0140, key=key@entry=0x7ffc1ba2c380) at fts-api.c:174 __func__ = "fts_backend_update_set_build_key" #8 0x00007f30fb0ba243 in fts_build_mail_header (block=0x7ffc1ba2c340, block=0x7ffc1ba2c340, ctx=0x7ffc1ba2c3b0) at fts-build-mail.c:173 hdr = <optimized out> key = {uid = 6006200, type = FTS_BACKEND_BUILD_KEY_HDR, part = 0x55c7b935eed0, hdr_name = 0x55c7b943fb5f "RETURN-PATH", body_content_type = 0x0, body_content_disposition = 0x0} ret = <optimized out> #9 fts_build_mail_real (may_need_retry_r=0x7ffc1ba2c2f3, retriable_err_msg_r=0x7ffc1ba2c300, mail=0x55c7b93dcff8, update_ctx=0x55c7b93e0140) at fts-build-mail.c:568 block = {part = 0x55c7b935eed0, hdr = 0x55c7b93d7f18, data = 0x55c7b938b8a8 "", size = 0} ret = <optimized out> input = 0x55c7b93d78c0 raw_block = {part = 0x55c7b935eed0, hdr = 0x55c7b93d80b0, data = 0x0, size = 0} skip_body = false ctx = {mail = 0x55c7b93dcff8, update_ctx = 0x55c7b93e0140, content_type = 0x0, content_disposition = 0x0, body_parser = 0x0, word_buf = 0x0, ---Type <return> to continue, or q <return> to quit--- pending_input = 0x0, cur_user_lang = 0x0} prev_part = 0x55c7b935eed0 parser = 0x55c7b93d7b38 decoder = 0x55c7b93d7f00 parts = 0x7ffc1ba2c414 body_part = false body_added = false binary_body = <optimized out> error = 0x5ba5b8
#10 fts_build_mail (update_ctx=0x55c7b93e0140, mail=mail@entry=0x55c7b93dcff8) at fts-build-mail.c:617 _data_stack_cur_id = 6 attempts = 2 retriable_err_msg = 0x11e900729 may_need_retry = false #11 0x00007f30fb0c1102 in fts_mail_index (_mail=0x55c7b93dcff8) at fts-storage.c:550 ft = 0x55c7b9396880 flist = 0x55c7b938b8a8 pmail = 0x55c7b93dcff8 #12 fts_mail_precache (_mail=0x55c7b93dcff8) at fts-storage.c:571 _data_stack_cur_id = 5 mail = 0x55c7b93dcff8 fmail = <optimized out> ft = 0x55c7b9396880 __func__ = "fts_mail_precache" #13 0x00007f30fc1b7d64 in mail_precache (mail=0x55c7b93dcff8) at mail.c:432 _data_stack_cur_id = 4 p = 0x55c7b93dcff8 #14 0x000055c7b8b4c844 in index_mailbox_precache (conn=<optimized out>, box=0x55c7b938ef18) at master-connection.c:102 counter = 0 max = 21569 percentage_sent = 0 storage = <optimized out> status = {messages = 21569, recent = 0, unseen = 0, uidvalidity = 1462447525, uidnext = 6027769, first_unseen_seq = 0, first_recent_uid = 6027758, last_cached_seq = 0, highest_modseq = 0, highest_pvt_modseq = 0, keywords = 0x0, permanent_flags = 0, flags = 0, permanent_keywords = false, allow_new_keywords = false, nonpermanent_modseqs = false, no_modseq_tracking = false, have_guids = true, have_save_guids = true, have_only_guid128 = false} uids = <optimized out> username = 0x55c7b9385988 "msg@domain.com" first_uid = 6006200 ---Type <return> to continue, or q <return> to quit--- percentage_str = "\003\000\000" percentage = <optimized out> error = MAIL_ERROR_NONE trans = 0x55c7b9390480 ctx = 0x55c7b93d15f0 last_uid = 6006200 ret = 0 box_vname = 0x55c7b938f280 "INBOX.lfd.SSH login alerts" errstr = <optimized out> search_args = 0x0 mail = 0x55c7b93dcff8 metadata = {guid = '\000'-- Best regards, Martynas Bendorius
It seems this comes from the old version of gcc/stdlib also.
Please kindly file a "issue" on github https://github.com/grosjo/fts-xapian/issues
On 2019-12-15 21:35, Martynas Bendorius wrote:
Core was generated by `dovecot/indexer-worker'. Program terminated with signal 11, Segmentation fault. #0 0x00007f30f7ad056d in __exchange_and_add (__val=-1, __mem=0xfffffffffffffff8) at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/ext/atomicity.h:49 49 { return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); }
(gdb) bt full #0 0x00007f30f7ad056d in __exchange_and_add (__val=-1, __mem=0xfffffffffffffff8) at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/ext/atomicity.h:49 No locals. #1 __exchange_and_add_dispatch (__val=-1, __mem=0xfffffffffffffff8) at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/ext/atomicity.h:82 No locals. #2 std::string::_Rep::_M_dispose (this=0xffffffffffffffe8, __a=...) at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/basic_string.h:246 No locals. #3 0x00007f30f7b3407e in _M_dispose (__a=..., this=<optimized out>) at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/basic_string.tcc:254 No locals. #4 std::string::assign (this=this@entry=0x55c7b93e0168, __str="return-path") at /usr/src/debug/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/basic_string.tcc:250 __a = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>} #5 0x00007f30fa8776ce in operator= (__str="return-path", this=0x55c7b93e0168) at /usr/include/c++/4.8.2/bits/basic_string.h:547 No locals. #6 fts_backend_xapian_update_set_build_key (_ctx=0x55c7b93e0140, key=0x7ffc1ba2c380) at fts-backend-xapian.cpp:303 ctx = 0x55c7b93e0140 i = <optimized out> f2 = "return-path" backend = <optimized out> field = 0x55c7b943fb5f "RETURN-PATH" j = 11 #7 0x00007f30fb0b8cda in fts_backend_update_set_build_key (ctx=0x55c7b93e0140, key=key@entry=0x7ffc1ba2c380) at fts-api.c:174 __func__ = "fts_backend_update_set_build_key" #8 0x00007f30fb0ba243 in fts_build_mail_header (block=0x7ffc1ba2c340, block=0x7ffc1ba2c340, ctx=0x7ffc1ba2c3b0) at fts-build-mail.c:173 hdr = <optimized out> key = {uid = 6006200, type = FTS_BACKEND_BUILD_KEY_HDR, part = 0x55c7b935eed0, hdr_name = 0x55c7b943fb5f "RETURN-PATH", body_content_type = 0x0, body_content_disposition = 0x0} ret = <optimized out> #9 fts_build_mail_real (may_need_retry_r=0x7ffc1ba2c2f3, retriable_err_msg_r=0x7ffc1ba2c300, mail=0x55c7b93dcff8, update_ctx=0x55c7b93e0140) at fts-build-mail.c:568 block = {part = 0x55c7b935eed0, hdr = 0x55c7b93d7f18, data = 0x55c7b938b8a8 "", size = 0} ret = <optimized out> input = 0x55c7b93d78c0 raw_block = {part = 0x55c7b935eed0, hdr = 0x55c7b93d80b0, data = 0x0, size = 0} skip_body = false ctx = {mail = 0x55c7b93dcff8, update_ctx = 0x55c7b93e0140, content_type = 0x0, content_disposition = 0x0, body_parser = 0x0, word_buf = 0x0, ---Type <return> to continue, or q <return> to quit--- pending_input = 0x0, cur_user_lang = 0x0} prev_part = 0x55c7b935eed0 parser = 0x55c7b93d7b38 decoder = 0x55c7b93d7f00 parts = 0x7ffc1ba2c414 body_part = false body_added = false binary_body = <optimized out> error = 0x5ba5b8
#10 fts_build_mail (update_ctx=0x55c7b93e0140, mail=mail@entry=0x55c7b93dcff8) at fts-build-mail.c:617 _data_stack_cur_id = 6 attempts = 2 retriable_err_msg = 0x11e900729 may_need_retry = false #11 0x00007f30fb0c1102 in fts_mail_index (_mail=0x55c7b93dcff8) at fts-storage.c:550 ft = 0x55c7b9396880 flist = 0x55c7b938b8a8 pmail = 0x55c7b93dcff8 #12 fts_mail_precache (_mail=0x55c7b93dcff8) at fts-storage.c:571 _data_stack_cur_id = 5 mail = 0x55c7b93dcff8 fmail = <optimized out> ft = 0x55c7b9396880 __func__ = "fts_mail_precache" #13 0x00007f30fc1b7d64 in mail_precache (mail=0x55c7b93dcff8) at mail.c:432 _data_stack_cur_id = 4 p = 0x55c7b93dcff8 #14 0x000055c7b8b4c844 in index_mailbox_precache (conn=<optimized out>, box=0x55c7b938ef18) at master-connection.c:102 counter = 0 max = 21569 percentage_sent = 0 storage = <optimized out> status = {messages = 21569, recent = 0, unseen = 0, uidvalidity = 1462447525, uidnext = 6027769, first_unseen_seq = 0, first_recent_uid = 6027758, last_cached_seq = 0, highest_modseq = 0, highest_pvt_modseq = 0, keywords = 0x0, permanent_flags = 0, flags = 0, permanent_keywords = false, allow_new_keywords = false, nonpermanent_modseqs = false, no_modseq_tracking = false, have_guids = true, have_save_guids = true, have_only_guid128 = false} uids = <optimized out> username = 0x55c7b9385988 "msg@domain.com" first_uid = 6006200 ---Type <return> to continue, or q <return> to quit--- percentage_str = "\003\000\000" percentage = <optimized out> error = MAIL_ERROR_NONE trans = 0x55c7b9390480 ctx = 0x55c7b93d15f0 last_uid = 6006200 ret = 0 box_vname = 0x55c7b938f280 "INBOX.lfd.SSH login alerts" errstr = <optimized out> search_args = 0x0 mail = 0x55c7b93dcff8 metadata = {guid = '\000', virtual_size = 0, physical_size = 0, first_save_date = 0, cache_fields = 0x0, precache_fields = (MAIL_FETCH_STREAM_HEADER | MAIL_FETCH_STREAM_BODY | MAIL_FETCH_RECEIVED_DATE | MAIL_FETCH_SAVE_DATE | MAIL_FETCH_PHYSICAL_SIZE | MAIL_FETCH_VIRTUAL_SIZE | MAIL_FETCH_UIDL_BACKEND | MAIL_FETCH_GUID | MAIL_FETCH_POP3_ORDER), backend_ns_prefix = 0x0, backend_ns_type = (unknown: 0)} seq = <optimized out> #15 index_mailbox (user=<optimized out>, user=<optimized out>, what=<optimized out>, max_recent_msgs=<optimized out>, mailbox=<optimized out>, conn=0x55c7b9370df0) at master-connection.c:205 box = 0x55c7b938ef18 status = {messages = 463652304, recent = 32764, unseen = 1, uidvalidity = 0, uidnext = 4225857431, first_unseen_seq = 32560, first_recent_uid = 4226053086, last_cached_seq = 32560, highest_modseq = 94316285707297, highest_pvt_modseq = 94316294200320, keywords = 0x7f30fbe17797 <__x86_return_thunk+5>, permanent_flags = 4226053495, flags = 32560, permanent_keywords = true, allow_new_keywords = true, nonpermanent_modseqs = true, no_modseq_tracking = false, have_guids = true, have_save_guids = false, have_only_guid128 = false} errstr = <optimized out> ret = 0 ns = <optimized out> path = 0x55c7b935e7f8 "/home/username/imap/domain.com/msg/Maildir/.INBOX.lfd.SSH login alerts" error = 21569 sync_flags = <optimized out> #16 master_connection_input_line (line=<optimized out>, conn=0x55c7b9370df0) at master-connection.c:247 str = <optimized out> max_recent_msgs = 0 ret = <optimized out> args = <optimized out> input = {parent_event = 0x0, module = 0x55c7b8b4d05f "mail", service = 0x55c7b8b4d050 "indexer-worker", username = 0x55c7b935d038 "msg@domain.com", session_id = 0x0, session_id_prefix = 0x55c7b935d063 "MAYmHNGX9l1rviwA+Lg9Sw", session_create_time = 0, local_ip = {family = 0, u = {ip6 = {__in6_u = { __u6_addr8 = '\000' , __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' = "io_loop_call_io" #19 0x00007f30fbed8413 in io_loop_handler_run_internal (ioloop=ioloop@entry=0x55c7b9365d70) at ioloop-epoll.c:222 ctx = 0x55c7b9366ea0 list = 0x55c7b9370e90 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" #20 0x00007f30fbed6ab9 in io_loop_handler_run (ioloop=ioloop@entry=0x55c7b9365d70) at ioloop.c:770 __func__ = "io_loop_handler_run" #21 0x00007f30fbed6cf8 in io_loop_run (ioloop=0x55c7b9365d70) at ioloop.c:743 __func__ = "io_loop_run" #22 0x00007f30fbe46d83 in master_service_run (service=0x55c7b9365c00, callback=callback@entry=0x55c7b8b4c3e0, __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 = (unknown: 0), flags_override_remove = (unknown: 0), ---Type <return> to continue, or q <return> to quit--- no_userdb_lookup = false, debug = false, conn_secured = false, conn_ssl_secured = false} service_user = 0x55c7b93732e8 user = 0x55c7b9385868 error = 0x0 #17 master_connection_input (conn=0x55c7b9370df0) at master-connection.c:287 _data_stack_cur_id = 3 line = <optimized out> #18 0x00007f30fbed69af in io_loop_call_io (io=0x55c7b9370e30) at ioloop.c:718 ioloop = 0x55c7b9365d70 t_id = 2 __func__ ) at master-service.c:809 No locals. #23 0x000055c7b8b4c21e in main (argc=1, argv=0x55c7b9365960) at indexer-worker.c:77 storage_service_flags = (MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP | MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP | MAIL_STORAGE_SERVICE_FLAG_NO_IDLE_TIMEOUT) c = <optimized out> -- Best regards, Martynas Bendorius
participants (2)
-
Joan Moreau
-
Martynas Bendorius