Hello to everybody, first of all: thanks a lot for your hard work and for this nice piece of software!
After many search about the following SIGSEGV, I decide to post the backtrace and I hope to have avoided duplicated thread. The problem arise after I enable clucene fts. I tryed the clucene ports version (I am using OpenBSD) and a fixed version from github (Blue-Rocket/clucene::feature/pod) which contains FreeBSD fixes and others memory leak patches, but the problem persists. I built either dovecot-* and clucene-core with -g and the following logs are taken from that version. Maybe, I can do more debugging but I don't know how; some ideas?
thanks a lot
== LOG == Dec 16 12:30:34 mail02 dovecot: indexer-worker(user@hostname): Indexed 1 messages in Trash Dec 16 12:31:16 mail02 dovecot: imap-login: Login: user=<user@hostname>, method=PLAIN, rip=10.244.3.101, lip=10.244.3.200, mpid=90234, TLS, session=<68Ny6MRDml8K9ANl> Dec 16 12:31:16 mail02 dovecot: imap-login: Login: user=<user@hostname>, method=PLAIN, rip=10.244.3.101, lip=10.244.3.200, mpid=59810, TLS, session=<c7xz6MRDzV4K9ANl> Dec 16 12:31:16 mail02 dovecot: imap-login: Login: user=<user@hostname>, method=PLAIN, rip=10.244.3.101, lip=10.244.3.200, mpid=66756, TLS, session=<UtNz6MRDiJwK9ANl> Dec 16 12:31:16 mail02 dovecot: imap-login: Login: user=<user@hostname>, method=PLAIN, rip=10.244.3.101, lip=10.244.3.200, mpid=81959, TLS, session=<gJZ06MRD9HQK9ANl> Dec 16 12:31:16 mail02 dovecot: imap-login: Login: user=<user@hostname>, method=PLAIN, rip=10.244.3.101, lip=10.244.3.200, mpid=14099, TLS, session=<BL116MRD3DgK9ANl> Dec 16 12:31:16 mail02 dovecot: indexer-worker(user@hostname): Indexed 1 messages in INBOX Dec 16 12:32:18 mail02 dovecot: indexer-worker: Fatal: master: service(indexer-worker): child 18977 killed with signal 11 (core dumped)
== GDB == (gdb) bt #0 strlen () at /usr/src/lib/libc/arch/amd64/string/strlen.S:152 #1 0x0000093434d7c120 in __vfprintf (fp=0x7f7fffff96c0, fmt0=0x9343cef79ae "Timeout leak: %p (%s:%u)", ap=Variable "ap" is not available. ) at /usr/src/lib/libc/stdio/vfprintf.c:885 #2 0x0000093434d9b068 in *_libc_vsnprintf (str=0x933ab0940b8 "Timeout leak: 0x9342f652300", n=120, fmt=0x9343cef79ae "Timeout leak: %p (%s:%u)", ap=0x7f7fffff9870) at /usr/src/lib/libc/stdio/vsnprintf.c:61 #3 0x000009343cdd4aa5 in str_vprintfa (str=0x933ab094078, fmt=0x9343cef79ae "Timeout leak: %p (%s:%u)", args=0x7f7fffff9870) at str.c:129 #4 0x000009343cdaacd1 in internal_handler (ctx=0x9343d22fab0, format=0x9343cef79ae "Timeout leak: %p (%s:%u)", args=0x7f7fffff9870) at failures.c:602 #5 0x000009343cdab839 in i_internal_error_handler (ctx=Variable "ctx" is not available. ) at failures.c:677 #6 0x000009343cdab3f4 in i_warning (format=0x9343cef79ae "Timeout leak: %p (%s:%u)") at failures.c:325 #7 0x000009343cdc107b in io_loop_destroy (_ioloop=Variable "_ioloop" is not available. ) at ioloop.c:741 #8 0x000009343cd485bd in master_service_deinit (_service=Variable "_service" is not available. ) at master-service.c:876 #9 0x0000093193802642 in main (argc=1, argv=0x7f7fffff9b28) at indexer-worker.c:83
(gdb) bt full #0 strlen () at /usr/src/lib/libc/arch/amd64/string/strlen.S:152 No locals. #1 0x0000093434d7c120 in __vfprintf (fp=0x7f7fffff96c0, fmt0=0x9343cef79ae "Timeout leak: %p (%s:%u)", ap=Variable "ap" is not available. ) at /usr/src/lib/libc/stdio/vfprintf.c:885 mbs = { __mbstate8 = "{\t\000\000\000\000\000\000\000\000\000\000r3\t\000\000\000\000\000\000\000\000\000\0004\t\000\000\001\000\000\000\000\000\000\000223\177\177\000\000\001\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\t216U\035\rP", '\0' <repeats 47 times>, __mbstateL = 10118011532464} mbseqlen = Variable "mbseqlen" is not available.
== DOVECONF == # 2.2.27 (c0f36b0): /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.16 (fed8554) # OS: OpenBSD 6.0 amd64 auth_master_user_separator = * auth_mechanisms = PLAIN LOGIN base_dir = /var/run/dovecot dict { acl = mysql:/etc/dovecot/dovecot-share-folder.conf quotadict = mysql:/etc/dovecot/dovecot-used-quota.conf } first_valid_uid = 2000 last_valid_uid = 2000 listen = * [::] login_greeting = Welcome mail_gid = 2000 mail_location = mdbox:%Lh/Maildir/:INDEX=%Lh/Maildir/ mail_plugins = quota mailbox_alias acl zlib fts fts_lucene trash mail_uid = 2000 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 mdbox_rotate_size = 60 M namespace { inbox = yes location = mailbox Archive { auto = no special_use = \Archive } mailbox Archives { auto = no special_use = \Archive } mailbox "Deleted Messages" { auto = no special_use = \Trash } mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { auto = subscribe autoexpunge = 30 days special_use = \Junk } mailbox "Junk E-mail" { auto = no special_use = \Junk } mailbox SPAM { auto = no special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Items" { auto = no special_use = \Sent } mailbox "Sent Messages" { auto = no special_use = \Sent } mailbox Trash { auto = subscribe autoexpunge = 30 days special_use = \Trash } prefix = separator = / type = private } namespace { list = children location = mdbox:%%Lh/Maildir/:INDEX=%%Lh/Maildir/Shared/%%Ld/%%Ln prefix = Shared/%%u/ separator = / subscriptions = yes type = shared } passdb { args = /etc/dovecot/dovecot-mysql.conf driver = sql } passdb { args = /etc/dovecot/dovecot-master-users driver = passwd-file master = yes } plugin { acl = vfile acl_shared_dict = proxy::acl antispam_backend = MAILTRAIN antispam_mail_notspam = --ham antispam_mail_sendmail = /usr/local/bin/sa-learn-pipe.sh antispam_mail_spam = --spam antispam_signature = X-Spam-Flag antispam_signature_missing = move antispam_spam = Spam;Junk antispam_spam_pattern = spam;Spam;junk;Junk antispam_spam_pattern_ignorecase = SPAM;JUNK antispam_trash = trash;Trash;Deleted Items;Deleted Messages antispam_trash_pattern = trash;Trash;Deleted * antispam_trash_pattern_ignorecase = TRASH auth_socket_path = /var/run/dovecot/auth-master fts = lucene fts_autoindex = yes fts_lucene = whitespace_chars=@. mailbox_alias_new = Sent Messages mailbox_alias_new2 = Sent Items mailbox_alias_new3 = SPAM mailbox_alias_new4 = Spam mailbox_alias_old = Sent mailbox_alias_old2 = Sent mailbox_alias_old3 = Junk mailbox_alias_old4 = Junk quota = dict:user::proxy::quotadict quota_grace = 10%% quota_rule = *:storage=1G quota_warning = storage=100%% quota-warning 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=90%% quota-warning 90 %u quota_warning4 = storage=85%% quota-warning 85 %u sieve = %Lh/sieve/dovecot.sieve sieve_before = /var/vmail/sieve/dovecot.sieve sieve_dir = %Lh/sieve sieve_global_dir = /var/vmail/sieve sieve_max_redirects = 30 trash = /etc/dovecot/dovecot-trash.conf.ext zlib_save = lz4 zlib_save_level = 6 } protocols = pop3 imap sieve lmtp service auth { inet_listener { address = 127.0.0.1 port = 12345 } unix_listener /var/spool/postfix/private/dovecot-auth { group = _postfix mode = 0666 user = _postfix } unix_listener auth-master { group = vmail mode = 0666 user = vmail } unix_listener auth-userdb { group = vmail mode = 0660 user = vmail } } service dict { unix_listener dict { group = vmail mode = 0660 user = vmail } } service imap-login { process_limit = 500 service_count = 1 } service lmtp { executable = lmtp -L inet_listener lmtp { address = 127.0.0.1 port = 24 } process_min_avail = 5 unix_listener /var/spool/postfix/private/dovecot-lmtp { group = _postfix mode = 0600 user = _postfix } user = vmail } service managesieve-login { inet_listener sieve { port = 4190 } } service pop3-login { service_count = 1 } service quota-status { client_limit = 2 executable = quota-status -p postfix inet_listener { address = 127.0.0.1 port = 12340 } } service quota-warning { executable = script /usr/local/bin/dovecot-quota-warning.sh unix_listener quota-warning { group = vmail mode = 0660 user = vmail } } ssl = required ssl_cert = </etc/ssl/dovecot.crt ssl_cipher_list = EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH ssl_dh_parameters_length = 2048 ssl_key = # hidden, use -P to show it ssl_prefer_server_ciphers = yes ssl_protocols = !SSLv2 !SSLv3 syslog_facility = local5 userdb { args = /etc/dovecot/dovecot-mysql.conf driver = sql } protocol lda { auth_socket_path = /var/run/dovecot/auth-master lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes mail_plugins = quota mailbox_alias acl zlib fts fts_lucene trash sieve notify push_notification postmaster_address = root } protocol lmtp { lmtp_save_to_detail_mailbox = yes log_path = syslog mail_plugins = quota sieve notify push_notification postmaster_address = postmaster recipient_delimiter = + } protocol imap { imap_client_workarounds = tb-extra-mailbox-sep imap_idle_notify_interval = 29 mins imap_max_line_length = 4 M mail_max_userip_connections = 30 mail_plugins = quota mailbox_alias acl zlib fts fts_lucene trash imap_quota imap_acl imap_zlib antispam } protocol pop3 { mail_max_userip_connections = 30 mail_plugins = quota mailbox_alias acl zlib fts fts_lucene trash pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_uidl_format = %08Xu%08Xv }