[Dovecot] v2.2 dsync

Walter Steiner ws+dovecot at iai.uni-bonn.de
Thu Mar 14 12:05:29 EET 2013


On Wed, Feb 27, 2013 at 14:27:49 +0100, Walter Steiner wrote:

> > > 2) and without the acl plugin 
> > ..
> > > Core was generated by `/m/sw/dc/a/bin/doveadm -Dv backup -R -u cyrtest1 at iai.uni-bonn.de -m INBOX imapc'.
> > > Program terminated with signal 11, Segmentation fault.
> > > [New process 94912    ]
> > > #0  0x00000000004578cc in dsync_ibc_send_mail_request (ibc=0x4a9f20, request=0x5441c0) at dsync-ibc.c:38
> > > 38              return ibc->v.is_send_queue_full(ibc) ?
> > > (gdb) bt full
> > > #0  0x00000000004578cc in dsync_ibc_send_mail_request (ibc=0x4a9f20, request=0x5441c0) at dsync-ibc.c:38
> > >         __FUNCTION__ = "dsync_ibc_send_mail_request"
> > > #1  0x000000000044a6b1 in dsync_brain_send_mail_request (brain=0x4aa5e0) at dsync-brain-mails.c:25
> > >         request = (const struct dsync_mail_request *) 0x5441c0
> > >         __FUNCTION__ = "dsync_brain_send_mail_request"
> > 
> > Now this is a strange one. Can you reproduce itIn gdb show also the
> > result of:
> > 
> > p *ibc
> 
> (gdb) p *ibc
> $1 = {v = {deinit = 0x45c5eb <dsync_ibc_pipe_deinit>, send_handshake = 0x45c753 <dsync_ibc_pipe_send_handshake>, recv_handshake = 0x45c804 <dsync_ibc_pipe_recv_handshake>, 
>     send_end_of_list = 0x45c8b6 <dsync_ibc_pipe_send_end_of_list>, send_mailbox_state = 0x45c8e4 <dsync_ibc_pipe_send_mailbox_state>, recv_mailbox_state = 0x45c951 <dsync_ibc_pipe_recv_mailbox_state>, 
>     send_mailbox_tree_node = 0x45c9e1 <dsync_ibc_pipe_send_mailbox_tree_node>, recv_mailbox_tree_node = 0x45ca54 <dsync_ibc_pipe_recv_mailbox_tree_node>, 
>     send_mailbox_deletes = 0x45cade <dsync_ibc_pipe_send_mailbox_deletes>, recv_mailbox_deletes = 0x45cb3d <dsync_ibc_pipe_recv_mailbox_deletes>, send_mailbox = 0x45cbc8 <dsync_ibc_pipe_send_mailbox>, 
>     recv_mailbox = 0x45cd11 <dsync_ibc_pipe_recv_mailbox>, send_change = 0x45cd79 <dsync_ibc_pipe_send_change>, recv_change = 0x45cdce <dsync_ibc_pipe_recv_change>, 
>     send_mail_request = 0x45ce36 <dsync_ibc_pipe_send_mail_request>, recv_mail_request = 0x45ce9f <dsync_ibc_pipe_recv_mail_request>, send_mail = 0x45cf07 <dsync_ibc_pipe_send_mail>, 
>     recv_mail = 0x45cfff <dsync_ibc_pipe_recv_mail>, close_mail_streams = 0x45d0ce <dsync_ibc_pipe_close_mail_streams>, is_send_queue_full = 0x45c855 <dsync_ibc_pipe_is_send_queue_full>, 
>     has_pending_data = 0x45c889 <dsync_ibc_pipe_has_pending_data>}, io_callback = 0x445827 <dsync_brain_run_io>, io_context = 0x4a9fd0, failed = 0}
> 

Hello Timo et al,

is there a chance that the crash I have reported two weeks ago can be
fixed?  Or any thoughts about what triggers it / what I better try to
avoid / I do wrong?  Any help is appreciated!

I'm afraid that our window of time for switching IMAP server software
will shut this month and we are forced to stay with cyrus for another
dozen of years.

I've compiled each nightly but a segmentation fault remains.

Is there anything I can do to avoid it or give helpful information?

Short reminder: with 2.1.15 mailboxes are being transferred from the
cyrus box.  With 2.2(-20130314) not even a single mail in a single
mailbox made it to the dovecot side. The plan is to use doveadm backup
to transfer and adapt the content of the cyrus server to the new dovecot
server while the cyrus server remains in use.  After running some iter-
ations (each will take less time) we switch the service from cyrus to
dovecot.
We think it is better to not start with 2.1.x as we want to benefit
from the new 2.2 dsync protocol to keep two dovecot servers in sync.

I have tried to simplify the configuration which is following:

# 20130314: /m/sw/dc/2.2-20130314/etc/dovecot/dovecot.conf
# OS: SunOS 5.11 i86pc  zfs
auth_debug = yes
auth_debug_passwords = yes
auth_default_realm = iai.uni-bonn.de
auth_master_user_separator = *
auth_mechanisms = plain login
auth_verbose = yes
auth_verbose_passwords = sha1
base_dir = /var/run/dovecot/
debug_log_path = /tmp/dcd
imapc_features = rfc822.size
imapc_host = mailbox.iai.uni-bonn.de
imapc_list_prefix = INBOX
imapc_master_user = *removed*
imapc_password = *removed*
imapc_port = 993
imapc_ssl = imaps
imapc_ssl_verify = no
imapc_user = %n
log_path = /tmp/dce
mail_debug = yes
mail_gid = dovemail
mail_location = sdbox:/m/d/imap/mbox/m/%n
mail_plugins = notify mail_log
mail_uid = dovemail
namespace inbox {
  hidden = no
  inbox = yes
  list = yes
  location = 
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix = 
  separator = /
  subscriptions = yes
  type = private
}
namespace user {
  hidden = no
  list = children
  location = sdbox:/m/d/imap/mbox/m/%%n
  prefix = user/%%u/
  separator = /
  type = shared
}
passdb {
  args = scheme=CRYPT username_format=%u /m/d/etc/user/pw
  driver = passwd-file
}
passdb {
  args = username_format=%n /m/d/etc/user/global/pw-master-giat
  driver = passwd-file
  master = yes
  pass = yes
}
passdb {
  args = username_format=%n /m/d/etc/user/global/pw-master-top
  driver = passwd-file
  master = yes
  pass = yes
}
passdb {
  args = username_format=%n /m/d/etc/user/global/pw-master-top
  driver = passwd-file
}
plugin {
  mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change append mailbox_create save flag_change
  mail_log_fields = uid box msgid size
}
protocols = imap pop3
service auth-worker {
  user = doveauth
}
service auth {
  user = doveauth
}
service imap-login {
  process_min_avail = 4
  service_count = 1
}
service imap {
  executable = imap
  process_limit = 1024
}
service pop3 {
  executable = pop3
  process_limit = 64
}
ssl_cert = </m/sw/dc/a/etc/dovecot/ssl/certs/dovecotCert.pem
ssl_key = </m/sw/dc/a/etc/dovecot/ssl/keys/dovecotKey.pem
syslog_facility = local6
userdb {
  args = username_format=%u /m/d/etc/user/db
  driver = passwd-file
  override_fields = uid=dovemail gid=dovemail home=/m/d/user/%n
}
userdb {
  args = username_format=%n /m/d/etc/user/global/db-master
  default_fields = quota_rule=*:storage=512M
  driver = passwd-file
  override_fields = uid=dovemail gid=dovemail home=/m/d/user/global/%n
}

Thanks in advance, Walter Steiner



More information about the dovecot mailing list