I am experiencing a consistent panic while using doveadm sync on Dovecot
v2.4.2. The panic occurs during a synchronization attempt between two
servers. It appears that the sync panics when entering in a
.Junk.Something folder.
Any idea? I attach the log lines and my configuration
Any help would be appreciated
Roberto
# doveadm -D sync -u postmaster@domain-tld tcp:10.0.0.24:12345
[...]
Feb 06 22:39:46 doveadm([email protected]): Panic: file hash.c: line
252 (hash_table_insert_node): assertion failed: (opcode ==
HASH_TABLE_OP_UPDATE)
Feb 06 22:39:46 doveadm([email protected]): Error: Raw backtrace:
libdovecot.so.0(backtrace_append+0x40) [0x7f7bba941860] ->
libdovecot.so.0(backtrace_get+0x22) [0x7f7bba9419b2] ->
libdovecot.so.0(+0x14fc12) [0x7f7bba94fc12] ->
libdovecot.so.0(+0x14fc41) [0x7f7bba94fc41] -> libdovecot.so.0(+0x72375)
[0x7f7bba872375] -> libdovecot.so.0(+0x732c3) [0x7f7bba8732c3] ->
doveadm(dsync_mailbox_tree_build_name128_hash+0x9a) [0x55e5f58108ba] ->
doveadm(dsync_mailbox_tree_fill+0x750) [0x55e5f5811bb0] ->
doveadm(dsync_brain_mailbox_trees_init+0x192) [0x55e5f58055b2] ->
doveadm(dsync_brain_master_init+0x191) [0x55e5f5801f51] ->
doveadm(+0x3544b) [0x55e5f57e644b] -> doveadm(+0x3794e) [0x55e5f57e894e]
-> doveadm(doveadm_cmd_ver2_to_mail_cmd_wrapper+0x244) [0x55e5f57e9684]
-> doveadm(doveadm_cmdline_run+0x593) [0x55e5f57fd473] ->
doveadm(doveadm_cmdline_try_run+0xba) [0x55e5f57fc67a] ->
doveadm(main+0x2fd) [0x55e5f57dacfd] ->
libc.so.6(__libc_start_main+0xcd) [0x7f7bba4fd03d] ->
doveadm(_start+0x2a) [0x55e5f57db0ea]
# doveconf -n
# 2.4.2 (): /usr/local/dovecot/etc/dovecot/dovecot.conf
# Pigeonhole version 2.4.2 (767418c3)
# OS: Linux 6.15.3 x86_64 Slackware 15.0
# Hostname: qt
dovecot_config_version = 2.4.2
auth_allow_cleartext = yes
auth_allow_weak_schemes = yes
auth_default_domain = mydomain.tld
auth_mechanisms = plain login
auth_socket_path = ../../../var/run/dovecot/auth-userdb
debug_log_path = /var/log/dovecot/dovecot.log
default_login_user = vpopmail
doveadm_password = # hidden, use -P to show it
dovecot_storage_version = 2.4.2
first_valid_gid = 89
first_valid_uid = 89
fts_autoindex = yes
fts_autoindex_max_recent_msgs = 999
fts_search_add_missing = yes
hostname = mydomain.tld
last_valid_gid = 89
last_valid_uid = 89
listen {
* = yes
:: = no
}
log_debug = category=mail
log_path = /var/log/dovecot/dovecot.log
mail_access_groups = 89
mail_driver = maildir
mail_gid = 89
mail_path = ~/Maildir
mail_plugins {
notify = yes
fts = no
fts_solr = no
quota = yes
}
mail_privileged_group = 89
mail_uid = 89
mailbox_list_validate_fs_names = no
passdb_default_password_scheme = SHA512-CRYPT
postmaster_address = [email protected]
protocols {
imap = yes
pop3 = yes
sieve = yes
}
sendmail_path = /var/qmail/bin/sendmail
sql_driver = mysql
ssl_min_protocol = TLSv1.1
passdb sql {
query = SELECT CONCAT(vpopmail.pw_name, '@', vpopmail.pw_domain) AS
user, vpopmail.pw_passwd AS password, vpopmail.pw_dir AS userdb_home, 89
AS userdb_uid, 89 AS userdb_gid,
CONCAT(REPLACE(SUBSTRING_INDEX(vpopmail.pw_shell, 'S', 1), 'NOQUOTA',
'0'), 'B') AS userdb_quota_storage_size FROM vpopmail LEFT JOIN
aliasdomains ON aliasdomains.alias='%{user | domain}' LEFT JOIN limits
ON limits.domain='%{user | domain}' WHERE vpopmail.pw_name='%{user |
username}' AND (vpopmail.pw_domain='%{user | domain}' OR
vpopmail.pw_domain=aliasdomains.domain) AND ('%{local_port}'!='995' OR
!(vpopmail.pw_gid & 2)) AND ('%{remote_ip}'!='10.0.0.4' OR
!(vpopmail.pw_gid & 4)) AND ('%{remote_ip}'='10.0.0.4' OR
'%{local_port}'!='993' OR !(vpopmail.pw_gid & 8)) AND
('%{remote_ip}'!='10.0.0.4' OR COALESCE(disable_webmail,0)!=1) AND
('%{remote_ip}'='10.0.0.4' OR COALESCE(disable_imap,0)!=1)
}
userdb prefetch {
driver = prefetch
}
userdb sql {
iterate_query = SELECT CONCAT(pw_name,'@',pw_domain) AS user FROM
vpopmail
query = SELECT vpopmail.pw_dir AS home, 89 AS uid, 89 AS gid,
CONCAT(REPLACE(SUBSTRING_INDEX(vpopmail.pw_shell, 'S', 1), 'NOQUOTA',
'0'), 'B') AS quota_storage_size FROM vpopmail WHERE
vpopmail.pw_name='%{user | username}' AND vpopmail.pw_domain='%{user |
domain}'
}
namespace inbox {
inbox = yes
mailbox Drafts {
auto = subscribe
special_use = "\\Drafts"
}
mailbox Junk {
autoexpunge = 30d
special_use = "\\Junk"
}
mailbox Junk.TeachSpam {
auto = subscribe
autoexpunge = 30d
}
mailbox Junk.TeachNotSpam {
auto = subscribe
autoexpunge = 30d
}
mailbox Trash {
autoexpunge = 60d
special_use = "\\Trash"
quota_storage_extra = 100M
}
mailbox Sent {
special_use = "\\Sent"
}
mailbox "Sent Messages" {
special_use = "\\Sent"
}
}
protocol !indexer-worker {
mail_vsize_bg_after_count = 100
}
maildir {
broken_filename_sizes = yes
}
service imap-login {
inet_listener imap {
}
inet_listener imaps {
}
}
service pop3-login {
inet_listener pop3 {
}
inet_listener pop3s {
}
}
service imap {
executable = imap postlogin
}
service pop3 {
executable = pop3 postlogin
}
service postlogin {
executable = script-login ../../etc/scripts/dovecot_postlogin.sh
user = vpopmail
unix_listener postlogin {
group = vchkpw
mode = 0660
user = vpopmail
}
}
service auth {
user = $SET:default_internal_user
unix_listener auth-userdb {
group = vchkpw
mode = 0660
user = vpopmail
}
}
service auth-worker {
user = $SET:default_internal_user
}
service stats {
unix_listener stats-reader {
group = vchkpw
mode = 0660
user = vpopmail
}
unix_listener stats-writer {
group = vchkpw
mode = 0660
user = vpopmail
}
}
protocol lda {
mail_plugins {
sieve = yes
mail_log = yes
}
}
protocol imap {
mail_plugins {
notify = yes
mail_log = yes
imap_sieve = yes
imap_quota = yes
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
service managesieve {
}
protocol pop3 {
mail_plugins {
notify = yes
mail_log = yes
}
}
language en {
default = yes
}
quota "User quota" {
driver = count
storage_grace = 10M
quota_warning overquota {
quota_storage_percentage = 100
execute quota-warning {
args = 100 %{user}
}
}
quota_warning warn-95 {
quota_storage_percentage = 95
execute quota-warning {
args = 95 %{user}
}
}
quota_warning warn-85 {
quota_storage_percentage = 85
execute quota-warning {
args = 85 %{user}
}
}
}
service quota-warning {
executable = script ../../etc/scripts/quota-warning.sh
user = vpopmail
unix_listener quota-warning {
group = vchkpw
mode = 0660
user = dovenull
}
}
sieve_script personal {
active_path = ~/.sieve/dovecot.sieve
driver = file
path = ~/.sieve
}
sieve_script move-spam {
cause = delivery
path = /usr/local/dovecot/etc/sieve/move-spam.sieve
type = before
}
mysql 10.0.0.112 {
dbname = vpopmail_test
password = # hidden, use -P to show it
user = vpopmail_test
}
ssl_server {
cert_file = /etc/ssl/certs/dovecot.pem
key_file = /etc/ssl/private/dovecot.pem
}
_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]