A negated subject search on an empty folder causes an assertion failure in doveadm. To reproduce: bash-3.2# doveadm mailbox create -u ephraim "Freshly Empty" bash-3.2# doveadm search -u ephraim mailbox "Freshly Empty" NOT subject '***JUNK MAIL***' doveadm(ephraim): Panic: file mail-index-map.c: line 548 (mail_index_map_lookup_seq_range): assertion failed: (first_uid <= last_uid\ ) doveadm(ephraim): Error: Raw backtrace: 2 libdovecot.0.dylib 0x0000000100347463 default_fatal_handler + 486 -> 3 \ libdovecot.0.dylib 0x00000001003472c0 default_fatal_handler + 67 -> 4 libdovecot.0.dylib 0x000\ 0000100347705 i_fatal + 0 -> 5 libdovecot-storage.0.dylib 0x00000001002a799f mail_index_map_lookup_seq_range + 309 -> 6 \ libdovecot-storage.0.dylib 0x00000001002b6d4f mail_index_lookup_seq_range + 12 -> 7 lib20_fts_plugin.so \ 0x00000001003fe325 fts_search_lookup + 3307 -> 8 lib20_fts_plugin.so 0x00000001003fddfb fts_search_lookup + 1985 -\
9 lib20_fts_plugin.so 0x00000001003fd6e2 fts_search_lookup + 168 -> 10 lib20_fts_plugin.so 0x00\ 000001003ff148 fts_mailbox_allocated + 1139 -> 11 doveadm 0x00000001001dd3d2 doveadm_mail_iter_init + 1\ 99 -> 12 doveadm 0x00000001001df3ce cmd_search_run + 138 -> 13 doveadm 0x0\ 0000001001d94f9 doveadm_mail_next_user + 196 -> 14 doveadm 0x00000001001d9ad1 doveadm_mail_try_run + 77\ 6 -> 15 doveadm 0x00000001001e1a09 main + 1150 -> 16 libdyld.dylib 0x00007fff915\ ba5fd start + 1 -> 17 ??? 0x0000000000000009 0x0 + 9 Abort trap: 6 bash-3.2#
A positive search is no problem: bash-3.2# doveadm search -u ephraim mailbox "Freshly Empty" subject '***JUNK MAIL***' bash-3.2# Version and configuration info: bash-3.2# /Applications/Server.app/Contents/ServerRoot/usr/sbin/dovecotd --version 2.2.5 bash-3.2# /Applications/Server.app/Contents/ServerRoot/usr/sbin/dovecotd -n # 2.2.5: /Library/Server/Mail/Config/dovecot/dovecot.conf # OS: Darwin 13.0.0 x86_64 hfs auth_mechanisms = cram-md5 login apop plain digest-md5 auth_realms = mail.vishniac.com auth_socket_path = /var/run/dovecot/auth-userdb auth_username_format = %n debug_log_path = /Library/Logs/Mail/mail-debug.log default_internal_user = _dovecot default_login_user = _dovenull disable_plaintext_auth = no first_valid_gid = 6 first_valid_uid = 6 hostname = mail.vishniac.com imap_id_log = * imap_id_send = "name" * "version" * imap_urlauth_submit_user = submit info_log_path = /Library/Logs/Mail/mail-info.log log_path = /Library/Logs/Mail/mail-err.log login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c mail_access_groups = mail mail_attribute_dict = file:/Library/Server/Mail/Data/attributes/attributes.dict mail_location = maildir:/Library/Server/Mail/Data/mail/users/%u mail_log_prefix = "%s(pid %p user %u): " mail_plugins = quota zlib acl fts fts_sk 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 mdbox_rotate_size = 200 M namespace acl-mailboxes { list = children location = maildir:/Library/Server/Mail/Data/mail/users/%%u:INDEX=/Library/Server/Mail/Data/mail/shared/%%u prefix = shared.%%u. separator = . subscriptions = no type = shared } 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 = } namespace list-archives { list = children location = maildir:/Library/Server/Mail/Data/listserver/messages/archive/lists/%%u:INDEX=/Library/Server/Mail/Data/listserver/mess\ ages/archive/shared/%%u prefix = archives.%%u. separator = . subscriptions = no type = shared } passdb { driver = od } passdb { args = /Library/Server/Mail/Config/dovecot/submit.passdb driver = passwd-file } plugin { acl = vfile:/Library/Server/Mail/Config/dovecot/global-acls:cache_secs=300 acl_shared_dict = file:/Library/Server/Mail/Data/shared/shared-mailboxes fts = sk quota = maildir:User quota quota_warning = storage=100%% quota-exceeded %u sieve = /Library/Server/Mail/Data/rules/%u/dovecot.sieve sieve_dir = /Library/Server/Mail/Data/rules/%u stats_refresh = 30 secs stats_track_cmds = yes } postmaster_address = postmaster@vishniac.com protocols = imap pop3 lmtp sieve quota_full_tempfail = yes service auth { extra_groups = _keytabusers idle_kill = 15 mins unix_listener auth-userdb { user = _dovecot } } service dict { unix_listener dict { user = _dovecot } } service dns_client { unix_listener dns-client { mode = 0600 } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } service_count = 0 } service imap { client_limit = 5 process_limit = 20 service_count = 0 } service indexer-worker { user = _dovecot } service lmtp { unix_listener lmtp { mode = 0600 } } service managesieve-login { inet_listener sieve { port = 4190 } } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } } service pop3 { client_limit = 5 process_limit = 200 service_count = 0 } service quota-exceeded { executable = script /Applications/Server.app/Contents/ServerRoot/usr/libexec/dovecot/quota-exceeded.sh unix_listener quota-exceeded { group = mail mode = 0660 user = _dovecot } user = _dovecot } service quota-warning { executable = script /Applications/Server.app/Contents/ServerRoot/usr/libexec/dovecot/quota-warning.sh unix_listener quota-warning { group = mail mode = 0660 user = _dovecot } user = _dovecot } service stats { fifo_listener stats-mail { mode = 0600 user = _dovecot } } ssl_ca =