dovecot-lda segfaults with replication
Stefan Le Breton
dovecot.org at stelb.de
Sat Jan 3 22:09:02 UTC 2015
Hi,
I have set up replication, but dovecot-lda now fails with a segmentation
fault.
Problem seems to be in replication/replication-plugin.c line 253:
struct replication_user *ruser =
REPLICATION_USER_CONTEXT(ctx->ns->user);
resulting in ruser = 0x0
# 2.2.15: /usr/local/etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.6 (3e924b1b6c5c+)
# OS: FreeBSD 10.0-RELEASE amd64
gdb Backtrace + doveconf -n below.
Regards
Stefan
gdb backtrace:
#0 0x0000000802001bc4 in replication_mail_transaction_commit
(txn=0x801c811b0,
changes=0x7fffffffd3d0) at replication-plugin.c:258
ctx = (struct replication_mail_txn_context *) 0x801c811b0
ruser = (struct replication_user *) 0x0
priority = REPLICATION_PRIORITY_NONE
#1 0x0000000801490749 in notify_contexts_mail_transaction_commit
(t=0x801c24600,
changes=0x7fffffffd3d0) at notify-plugin.c:132
ctx = (struct notify_context *) 0x801c8d020
mail_txn = (struct notify_mail_txn *) 0x801c282b0
#2 0x0000000801491a53 in notify_transaction_commit (t=0x801c24600,
changes_r=0x7fffffffd3d0) at notify-storage.c:182
lt = (struct notify_transaction_context *) 0x0
lbox = (union mailbox_module_context *) 0x801cade50
#3 0x0000000800ae1ff9 in mailbox_transaction_commit_get_changes
(_t=0x801ce01b0,
changes_r=0x7fffffffd3d0) at mail-storage.c:1916
_data_stack_cur_id = 3
t = (struct mailbox_transaction_context *) 0x801c24600
box = (struct mailbox *) 0x801cad840
save_count = 1
ret = -128
#4 0x0000000800ae1f49 in mailbox_transaction_commit (t=0x801ce01b0)
at mail-storage.c:1897
changes = {pool = 0x801cd5420, uid_validity = 1234722882,
saved_uids = {
arr = {buffer = 0x801cd5440, element_size = 8}, v = 0x801cd5440,
v_modifiable = 0x801cd5440}, ignored_modseq_changes = 0, changed =
true,
no_read_perm = false}
ret = 8
#5 0x000000080244bfb2 in sieve_action_opr_optional_read ()
from /usr/local/lib/dovecot-2.2-pigeonhole/libdovecot-sieve.so.0
No symbol table info available.
#6 0x0000000802443924 in sieve_result_implicit_keep ()
from /usr/local/lib/dovecot-2.2-pigeonhole/libdovecot-sieve.so.0
No symbol table info available.
#7 0x0000000802443dcd in sieve_result_execute ()
from /usr/local/lib/dovecot-2.2-pigeonhole/libdovecot-sieve.so.0
No symbol table info available.
#8 0x0000000802452f1c in sieve_execute ()
from /usr/local/lib/dovecot-2.2-pigeonhole/libdovecot-sieve.so.0
No symbol table info available.
#9 0x0000000802205912 in sieve_plugin_init ()
from /usr/local/lib/dovecot/lib90_sieve_plugin.so
No symbol table info available.
#10 0x0000000800829104 in mail_deliver (ctx=0x7fffffffda08,
storage_r=0x7fffffffd960)
at mail-deliver.c:400
ret = 8
#11 0x0000000000402f2e in main (argc=7, argv=0x7fffffffdb08) at
main.c:437
set_roots = {0x604970, 0x0}
ctx = {pool = 0x801c29420, set = 0x801c67988, session =
0x801c29440,
dup_ctx = 0x801c237c0, session_id = 0x0, src_mail = 0x801c48840,
src_envelope_sender = 0x0, dest_user = 0x801c87040,
dest_addr = 0x7fffffffddaf "mail at maserver.de",
final_dest_addr = 0x7fffffffddaf "mail at maserver.de",
dest_mailbox_name = 0x403d68 "INBOX", dest_mail = 0x0,
var_expand_table = 0x0,
tempfail_error = 0x0, tried_default_save = false, saved_mail = false,
save_dest_mail = false, mailbox_full = false, dsn = false}
service_flags = 1027
user = 0x7fffffffdd9e "mail at maserver.de"
errstr = 0x37f <Error reading address 0x37f: Bad address>
path = 0x7fffffffddc0 "/tmp/mail"
lda_set = (struct lda_settings *) 0x801c67988
storage_service = (struct mail_storage_service_ctx *)
0x801c46840
service_user = (struct mail_storage_service_user *) 0x801c67190
service_input = {module = 0x403d55 "lda", service = 0x403d55
"lda",
username = 0x7fffffffdd9e "mail at maserver.de", session_id = 0x0,
local_ip = {
family = 0, u = {ip6 = {__u6_addr = {__u6_addr8 = '\0' <repeats 15
times>,
__u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0,
0, 0}}},
ip4 = {s_addr = 0}}}, remote_ip = {family = 0, u = {ip6 =
{__u6_addr = {
__u6_addr8 = '\0' <repeats 15 times>, __u6_addr16 = {0, 0, 0,
0, 0, 0, 0,
0}, __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr = 0}}},
local_port = 0,
remote_port = 0, userdb_fields = 0x0, flags_override_add = 0,
flags_override_remove = 0, no_userdb_lookup = 0}
storage = (struct mail_storage *) 0x0
user_source = 0x404090 ""
destaddr_source = 0x403d73 "-a parameter"
process_euid = 0
stderr_rejection = false
ret = 1
c = -1
error = MAIL_ERROR_NONE
# 2.2.15: /usr/local/etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.6 (3e924b1b6c5c+)
# OS: FreeBSD 10.0-RELEASE amd64
auth_mechanisms = plain login digest-md5
doveadm_password = welcomemyguest
first_valid_gid = 0
first_valid_uid = 125
listen = *
login_greeting = McImap
mail_location = maildir:~/.maildir
mail_log_prefix = "%Us(%u): "
mail_plugins = " notify replication"
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
passdb {
args = dovecot
driver = pam
}
passdb {
args = /usr/local/etc/dovecot/dovecot-mysql.conf
driver = sql
}
plugin {
antispam_backend = mailtrain
antispam_mail_notspam = some at where
antispam_mail_sendmail = /usr/sbin/sendmail
antispam_mail_spam = some at elsewhere
antispam_spam_pattern = INBOX.spam*
plugin_debug = yes
}
protocols = imap sieve
service aggregator {
fifo_listener replication-notify-fifo {
user = vmail
}
unix_listener replication-notify {
user = vmail
}
}
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
unix_listener auth-master {
group = vmail
mode = 0666
user = vmail
}
unix_listener auth-userdb {
group = vmail
mode = 0660
user = vmail
}
user = root
}
service doveadm {
inet_listener {
port = 31337
ssl = yes
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
service replicator {
unix_listener replicator-doveadm {
group = vmail
mode = 0600
user = vmail
}
}
ssl_cert = </a/cert.pem
ssl_key = </a/key.pem
userdb {
driver = passwd
}
userdb {
args = /usr/local/etc/dovecot/dovecot-mysql.conf
driver = sql
}
verbose_proctitle = yes
protocol imap {
imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
mail_plugins = " notify replication antispam"
}
protocol lda {
mail_plugins = " notify replication sieve"
}
protocol lmtp {
mail_plugins = " notify replication sieve"
}
More information about the dovecot
mailing list