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