Bug: indexer-worker segfaults with fts_xapian 1.2.5

Joan Moreau jom at grosjo.net
Mon Dec 16 08:30:28 EET 2019


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 at 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 at 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 <Address 0x5ba5b8 out of bounds>
> #10 fts_build_mail (update_ctx=0x55c7b93e0140, mail=mail at entry=0x55c7b93dcff8) at fts-build-mail.c:617
> _data_stack_cur_id = 6
> attempts = 2
> retriable_err_msg = 0x11e900729 <Address 0x11e900729 out of bounds>
> 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 at 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' <repeats 15 times>, 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 at 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' <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 = (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__ = "io_loop_call_io"
> #19 0x00007f30fbed8413 in io_loop_handler_run_internal (ioloop=ioloop at 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 at 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 at entry=0x55c7b8b4c3e0 <client_connected>) 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20191216/e474b8b3/attachment-0001.html>


More information about the dovecot mailing list