email-from-bobby
2013-Dec-06 13:33 UTC
[Dovecot] bug report: doveadm assertion failure "mail_index_map_lookup_seq_range"
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#
Ephraim Vishniac
2013-Dec-08 13:16 UTC
[Dovecot] bug report: doveadm assertion failure "mail_index_map_lookup_seq_range"
Since reporting this (from the wrong account, sorry), I've tried to investigate whether the problem exists in 2.2.9. While building 2.2.9 was no problem, I balked at actually installing it for fear of causing trouble with future system updates. (Or current operation, for that matter.) Could somebody please check whether this is problem is already fixed? On 12/6/13, 8:33 AM, email-from-bobby wrote:> 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# >
Timo Sirainen
2013-Dec-08 20:32 UTC
[Dovecot] bug report: doveadm assertion failure "mail_index_map_lookup_seq_range"
On 6.12.2013, at 15.33, email-from-bobby <email-from-bobby at vishniac.com> wrote:> 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\ > )Fixed: http://hg.dovecot.org/dovecot-2.2/rev/d837bd49ddee> bash-3.2# /Applications/Server.app/Contents/ServerRoot/usr/sbin/dovecotd -n > # 2.2.5: /Library/Server/Mail/Config/dovecot/dovecot.confBut note that if you build Dovecot yourself, you lose several Apple-patched functionality, at least unless you add the patches yourself (AFAIK not yet publicly available).