Panic at virtual folder fts-search-serialize.c

Janette Kelm jkelm at inovex.de
Wed Aug 20 15:44:34 UTC 2014


Hi all,

I'm using dovecot 2.2.13 with virtual folders and fts-solr (see attached 
dovecot-n.conf). At using virtual folder with fts, the dovecot crashes 
with following panic:

Aug 20 10:49:43 imap(...): Panic: file fts-search-serialize.c: line 63 
(fts_search_deserialize_add_idx): assertion failed: (*idx < buf->used)
Aug 20 10:49:43 imap(test4 at india.com): Error: Raw backtrace: 
/opt/dovecot2/lib/dovecot/libdovecot.so.0(+0x6c6ca) [0x7f93de51c6ca] -> 
/opt/dovecot2/lib/dovecot/libdovecot.so.0(+0x6c746) [0x7f93de51c746] -> 
/opt/dovecot2/lib/dovecot/libdovecot.so.0(+0x2542a) [0x7f93de4d542a] -> 
/opt/dovecot2/modules/lib20_fts_plugin.so(+0xc757) [0x7f93dd4e1757] -> 
/opt/dovecot2/modules/lib20_fts_plugin.so(fts_search_deserialize_add_nonmatches+0x1c) 
[0x7f93dd4e177c] -> /opt/dovecot2/modules/lib20_fts_plugin.so(+0xdafe) 
[0x7f93dd4e2afe] -> /opt/dovecot2/modules/lib20_fts_plugin.so(+0xdcd2) 
[0x7f93dd4e2cd2] -> 
/opt/dovecot2/lib/dovecot/libdovecot-storage.so.0(+0xa96da) 
[0x7f93de82b6da] -> 
/opt/dovecot2/lib/dovecot/libdovecot-storage.so.0(index_storage_search_next_nonblock+0x48) 
[0x7f93de82bd28] -> 
/opt/dovecot2/modules/lib20_virtual_plugin.so(virtual_search_next_nonblock+0x13e) 
[0x7f93dd2cd73e] -> 
/opt/dovecot2/modules/lib20_virtual_plugin.so(virtual_search_next_nonblock+0x7e) 
[0x7f93dd2cd67e] -> 
/opt/dovecot2/lib/dovecot/libdovecot-storage.so.0(mailbox_search_next_nonblock+0x27) 
[0x7f93de803f17] -> dovecot/imap() [0x41dddf] -> dovecot/imap() 
[0x41e462] -> 
/opt/dovecot2/lib/dovecot/libdovecot.so.0(io_loop_handle_timeouts+0xbb) 
[0x7f93de52d23b] -> 
/opt/dovecot2/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x61) 
[0x7f93de52df81] -> 
/opt/dovecot2/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x9) 
[0x7f93de52ce89] -> 
/opt/dovecot2/lib/dovecot/libdovecot.so.0(io_loop_run+0x38) 
[0x7f93de52cf18] -> 
/opt/dovecot2/lib/dovecot/libdovecot.so.0(master_service_run+0x13) 
[0x7f93de4d9f33] -> dovecot/imap(main+0x2a8) [0x421278] -> 
/lib/libc.so.6(__libc_start_main+0xfd) [0x7f93de145cad] -> 
dovecot/imap() [0x40bda9]
Aug 20 10:49:43 imap(...): Fatal: master: service(imap): child 7254 
killed with signal 6 (core dumps disabled)

imap-commands:
telnet localhost imap
...
3 select virtual/all
4 search text searchtext
- > panic crash (see above)


So I do nothing special, I just do fts in the virtual folder. At google 
I found the patch http://hg.dovecot.org/dovecot-2.2/rev/d63b209737be, 
but this is already included in dovecot2.2.13, so it is not the reason.

Regards,
Janette
-------------- next part --------------
# 2.2.13: /opt/dovecot2/etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-64-server x86_64 Ubuntu 10.04.4 LTS ext4
auth_debug = yes
auth_master_user_separator = *
auth_mechanisms = plain login anonymous
auth_socket_path = /var/run/dovecot/auth-master
debug_log_path = /var/log/dovecot-debug.log
dict {
  quota = mysql:/opt/dovecot2/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
first_valid_gid = 0
first_valid_uid = 0
info_log_path = /var/log/dovecot-info.log
log_path = /var/log/dovecot-err.log
login_greeting = Dovecot 2 for frontend tests
mail_location = maildir:/srv/Maildir/%d/%n:LAYOUT=fs
mail_plugins = fts fts_solr quota virtual event_broker notify
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 ihave duplicate
namespace {
  hidden = yes
  list = no
  location = virtual:/root/virtual:LAYOUT=fs
  mailbox all {
    auto = subscribe
  }
  mailbox unseen {
    auto = subscribe
  }
  prefix = virtual/
  separator = /
  subscriptions = yes
  type = private
}
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    auto = create
    special_use = \Drafts
  }
  mailbox Junk {
    auto = create
    special_use = \Junk
  }
  mailbox Sent {
    auto = create
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = create
    special_use = \Trash
  }
  prefix = 
}
passdb {
  args = /opt/dovecot2/etc/dovecot/conf.d/passwd.masteruser
  driver = passwd-file
  master = yes
}
passdb {
  args = /opt/dovecot2/etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  event_broker_base_url = http://fe01.icom.staging/events/
  event_broker_events = delete undelete expunge copy mailbox_delete mailbox_rename mailbox_create flag_change append
  event_broker_fields = uid box msgid from subject flags
  fts = solr
  fts_autoindex = yes
  fts_solr = break-imap-search url=http://localhost:28080/solr/
  quota = dict:User quota::proxy::quota
  quota_rule = *:storage=1G
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
  sieve_global_dir = /opt/icom/conf/
}
postmaster_address = postmaster at india.com
protocols = imap pop3 sieve
service auth-worker {
  user = root
}
service auth {
  unix_listener /var/run/dovecot/auth-client {
    group = vmail
    mode = 0777
    user = vmail
  }
  unix_listener /var/run/dovecot/auth-master {
    group = vmail
    mode = 0777
    user = vmail
  }
}
service dict {
  unix_listener dict {
    group = vmail
    mode = 0777
    user = vmail
  }
  user = vmail
}
service imap-login {
  process_min_avail = 10
  service_count = 0
  vsz_limit = 64 M
}
service imap {
  process_limit = 2024
}
service indexer {
  user = root
}
service lmtp {
  unix_listener lmtp {
    mode = 0777
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 2002
  }
}
service pop3 {
  process_limit = 2024
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  args = /opt/dovecot2/etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocol lda {
  info_log_path = /var/log/dovecot-lda.log
  log_path = /var/log/dovecot-lda-errors.log
}
protocol imap {
  mail_max_userip_connections = 1000
  mail_plugins = fts fts_solr quota virtual event_broker notify imap_quota
}
protocol sieve {
  mail_max_userip_connections = 1000
}
protocol pop3 {
  mail_max_userip_connections = 1000
}


More information about the dovecot mailing list