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 "m...@maserver.de",
  final_dest_addr = 0x7fffffffddaf "m...@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 "m...@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 "m...@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@where
  antispam_mail_sendmail = /usr/sbin/sendmail
  antispam_mail_spam = some@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"
}

Reply via email to