[Dovecot] bug report: doveadm assertion failure "mail_index_map_lookup_seq_range"

email-from-bobby email-from-bobby at vishniac.com
Fri Dec 6 15:33:24 EET 2013


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 at 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 = 
</etc/certificates/mail.vishniac.com.6BC35F87D55C160F0933F54763846F6CC1EB5A81.chain.pem
ssl_cert = 
</etc/certificates/mail.vishniac.com.6BC35F87D55C160F0933F54763846F6CC1EB5A81.cert.pem
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!ADH:!eNULL
ssl_key = 
</etc/certificates/mail.vishniac.com.6BC35F87D55C160F0933F54763846F6CC1EB5A81.key.pem
ssl_key_path = 
/etc/certificates/mail.vishniac.com.6BC35F87D55C160F0933F54763846F6CC1EB5A81.key.pem
userdb {
   args = 
partition=/Library/Server/Mail/Config/dovecot/partition_map.conf 
enforce_quotas=no
   driver = od
}
userdb {
   args = /Library/Server/Mail/Config/dovecot/submit.passdb
   driver = passwd-file
}
verbose_proctitle = yes
protocol lmtp {
   mail_plugins = quota zlib acl fts fts_sk sieve
}
protocol lda {
   mail_plugins = quota zlib acl fts fts_sk sieve
}
protocol imap {
   mail_max_userip_connections = 20
   mail_plugins = quota zlib acl fts fts_sk imap_acl imap_quota imap_zlib
}
protocol pop3 {
   mail_max_userip_connections = 6
}
bash-3.2#



More information about the dovecot mailing list