[Dovecot] dovecot 2.2.x and replication with dsync and shared / public namespace
romain
roms2000 at free.fr
Sun Oct 13 19:52:57 EEST 2013
Replying to my self :
Dovecot 2.2 seems to have problem to replicate shared folders / public
folders.
To workaround, I had to modify source file
"src/replication/replicator/dsync-client.c" and change line 210 :
str_printfa(cmd, "\tsync\t-d\t-N\t-l\t%u", DSYNC_LOCK_TIMEOUT_SECS);
To :
str_printfa(cmd, "\tsync\t-d\t-l\t%u", DSYNC_LOCK_TIMEOUT_SECS);
This way, replicator is using command :
doveadm sync -u USERNAME -d -l 30 -U -s
instead of
doveadm sync -u USERNAME -d -N -l 30 -U -s
(note : -N enable to sync all Namespace)
Latest command would sync all user's Namespace (private / shared /
public) and will failed, and user's mailboxes won't be replicated.
An option in replicator plugin's could be usefull to enable / disable
sync of shared folders, sync of public folders, and sync of user's
mailboxes.
MARIADASSOU Romain
Le 23/09/2013 22:40, romain a écrit :
> Hi,
>
> I'm trying to configure replication with dsync on Dovecot 2.2.5 (and
> latest nightly).
>
> I did followed the guide at http://wiki2.dovecot.org/Replication
>
> But I can get dsync-server working only if my users do not have access
> to shared mailboxes and / or public mailboxes which is problematic for
> our setup.
>
> dsync-server is trying to create folders in public/ namespace :
> -------------------------------------
> 2013-09-23 20:34:04 dsync-server(adupont): Panic: file
> dsync-brain-mailbox-tree.c: line 384
> (dsync_brain_mailbox_tree_add_delete): assertion failed:
> (other_node->ns == NULL || other_node->ns == node->ns)
> 2013-09-23 20:34:04 dsync-server(adupont): Error: Raw backtrace:
> /usr/local/lib/dovecot/libdovecot.so.0(+0x64faa) [0x7f7bf42dcfaa] ->
> /usr/local/lib/dovecot/libdovecot.so.0(+0x64fee) [0x7f7bf42dcfee] ->
> /usr/local/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f7bf4299299] ->
> dovecot/doveadm-server() [0x41ba52] ->
> dovecot/doveadm-server(dsync_brain_recv_mailbox_tree_deletes+0xbb)
> [0x41c39b] -> dovecot/doveadm-server(dsync_brain_run+0x37c) [0x41972c]
> -> dovecot/doveadm-server() [0x419bf8] -> dovecot/doveadm-server()
> [0x42ba20] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x36)
> [0x7f7bf42ed3d6] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xaf)
> [0x7f7bf42ee23f] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_run+0x28)
> [0x7f7bf42ecf18] -> dovecot/doveadm-server() [0x416e59] ->
> dovecot/doveadm-server() [0x40cc77] -> dovecot/doveadm-server()
> [0x415ddd] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x36)
> [0x7f7bf42ed3d6] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xaf)
> [0x7f7bf42ee23f] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_run+0x28)
> [0x7f7bf42ecf18] ->
> /usr/local/lib/dovecot/libdovecot.so.0(master_service_run+0x13)
> [0x7f7bf429e553] -> dovecot/doveadm-server(main+0x11b) [0x40c9eb] ->
> /lib64/libc.so.6(__libc_start_main+0xed) [0x7f7bf3f0932d] ->
> dovecot/doveadm-server() [0x40ca59]
> 2013-09-23 20:34:04 dsync-server(adupont): Fatal: master:
> service(doveadm): child 28131 killed with signal 6 (core dumped)
> -------------------------------------
> dsync-server is trying to create folders in shared/ namespace :
> -------------------------------------
> 2013-09-23 20:34:05 dsync-server(s.durant): Panic: file
> dsync-mailbox-tree-sync.c: line 1029 (sync_create_mailboxes):
> assertion failed: (node->ns == other_node->ns)
> 2013-09-23 20:34:05 dsync-server(s.durant): Error: Raw backtrace:
> /usr/local/lib/dovecot/libdovecot.so.0(+0x64faa) [0x7ffb6fd74faa] ->
> /usr/local/lib/dovecot/libdovecot.so.0(+0x64fee) [0x7ffb6fd74fee] ->
> /usr/local/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7ffb6fd31299] ->
> dovecot/doveadm-server() [0x426025] ->
> dovecot/doveadm-server(dsync_mailbox_trees_sync_init+0x139) [0x427789]
> -> dovecot/doveadm-server(dsync_brain_recv_mailbox_tree_deletes+0xdd)
> [0x41c3bd] -> dovecot/doveadm-server(dsync_brain_run+0x37c) [0x41972c]
> -> dovecot/doveadm-server() [0x419bf8] -> dovecot/doveadm-server()
> [0x42ba20] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x36)
> [0x7ffb6fd853d6] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xaf)
> [0x7ffb6fd8623f] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_run+0x28)
> [0x7ffb6fd84f18] -> dovecot/doveadm-server() [0x416e59] ->
> dovecot/doveadm-server() [0x40cc77] -> dovecot/doveadm-server()
> [0x415ddd] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x36)
> [0x7ffb6fd853d6] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xaf)
> [0x7ffb6fd8623f] ->
> /usr/local/lib/dovecot/libdovecot.so.0(io_loop_run+0x28)
> [0x7ffb6fd84f18] ->
> /usr/local/lib/dovecot/libdovecot.so.0(master_service_run+0x13)
> [0x7ffb6fd36553] -> dovecot/doveadm-server(main+0x11b) [0x40c9eb] ->
> /lib64/libc.so.6(__libc_start_main+0xed) [0x7ffb6f9a132d] ->
> dovecot/doveadm-server() [0x40ca59]
> 2013-09-23 20:34:05 dsync-server(s.durant): Fatal: master:
> service(doveadm): child 28137 killed with signal 6 (core dumped)
> -------------------------------------
>
> If I run the command "doveadm -v sync -u my.user -f
> tcp:10.20.0.2:12345" mailboxes are sync correctly. No problem with
> public and shared mailboxes.
>
> If i run the command doveadm replicator replicate 's.durant' or
> doveadm replicator replicate '*', I get plenty of Panic / Error for
> all users that can access Public mailboxes or Shared mailboxes.
>
> Regards,
> MARIADASSOU Romain
More information about the dovecot
mailing list