Elusive replication bug in 2.3.13

Raphael Jaffey rjaffey at artic.edu
Mon Jan 12 12:38:56 EST 2009


Hi Janne,

I've reproduced this with both the vanilla Cyrus tarball and the Invoca RPM.

Check out bug report 3130 at:

https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=3130

and my post at:

http://lists.andrew.cmu.edu/pipermail/info-cyrus/2009-January/030279.html

for a discussion of what looks like the same problem you're
experiencing and a workaround that seems to solve the problem.

In my case it's related to how many of those inboxes have quotas  
associated with them and the use of the default 'quota_db' of  
'quotalegacy'.  I was able to work around the replication problem by  
switching 'quota_db' to 'skiplist' on the replica.  Unfortunately I  
couldn't get berkeley or berkeley-hash to work reliably and as I'm  
unsure as to which database other than 'quotalegacy' would be most  
appropriate.  So far, no one has suggested anything.

What happens when you try to delete user.jmm on the master?  Does the  
IMAP process handling the delete segfault?

Regards,
Rafe

Quoting Janne Peltonen <janne.peltonen at helsinki.fi>:

> Hi!
>
> Since I upgraded to 2.3.13 (Invoca RPM rev 4) I've been running into a
> mysterious replication bug. In some circumstances, creating a user    
> with a three
> letter long username causes the sync master process to choke, on    
> either signal
> 11 or 6. Like this:
>
> --clip--
> i08.mappi.helsinki.fi> cm user.jmm
> --clip--
> Jan 12 18:31:01 scn3 i08/syncserver[25821]: Failed to access inbox for jmm
> Jan 12 18:31:01 scn3 i08/master[31569]: process 25821 exited,    
> signaled to death by 6
> Jan 12 18:31:07 scn3 i08/syncserver[30193]: login:    
> pcn3.mappi.helsinki.fi [128.214.20.131] cyr_sync DIGEST-MD5 User    
> logged in
> Jan 12 18:31:07 scn3 i08/syncserver[30193]: Failed to access inbox for jmm
> Jan 12 18:31:07 scn3 i08/master[31569]: process 30193 exited,    
> signaled to death by 11
> [etc, the sync_client keeps retrying]
> --clip--
> [jmmpelto at pcn3 ~]$ ps -ef|grep sync.*i08
> cyrus     8255     1  0 18:16 ?        00:00:00    
> /usr/lib/cyrus-imapd/sync_client -r -C /etc/imapd.conf.i08.master
> cyrus    22092  8255  0 18:33 ?        00:00:00    
> /usr/lib/cyrus-imapd/sync_client -r -C /etc/imapd.conf.i08.master
> jmmpelto 22095 20355  0 18:33 pts/4    00:00:00 grep sync.*i08
> [jmmpelto at pcn3 ~]$ sudo kill 8255
> Password:
> [jmmpelto at pcn3 ~]$ ps -ef|grep sync.*i08
> jmmpelto 25898 20355  0 18:34 pts/4    00:00:00 grep sync.*i08
> [jmmpelto at pcn3 ~]$
> [the child died, again, because the server died]
> --clip--
> [jmmpelto at pcn3 ~]$ sudo su - cyrus -c    
> "/usr/lib/cyrus-imapd/sync_client -r -C /etc/imapd.conf.i08.master"
> [jmmpelto at pcn3 ~]$ ps -ef|grep sync.*i08
> cyrus    11483     1  0 18:35 ?        00:00:00    
> /usr/lib/cyrus-imapd/sync_client -r -C /etc/imapd.conf.i08.master
> cyrus    11484 11483  1 18:35 ?        00:00:00    
> /usr/lib/cyrus-imapd/sync_client -r -C /etc/imapd.conf.i08.master
> jmmpelto 13382 20355  0 18:35 pts/4    00:00:00 grep sync.*i08
> [after restart, rolling replication runs OK]
> --clip--
> [jmmpelto at scn3 ~]$ sudo /usr/lib/cyrus-imapd/mbpath -C    
> /etc/imapd.conf.i08.replica user.jmm
> Invalid mailbox name: user.jmm
> [but the mailbox never got replicated]
> --clip--
> -bash-3.2$ cat log-8255
> USER jmm
> -bash-3.2$ /usr/lib/cyrus-imapd/sync_client -v -o -r -C    
> /etc/imapd.conf.i08.master -f log-8255
> USER jmm
> USER jmm
> USER jmm
> --clip--
> Jan 12 18:39:19 scn3 i08/syncserver[30016]: login:    
> pcn3.mappi.helsinki.fi [128.214.20.131] cyr_sync DIGEST-MD5 User    
> logged in
> Jan 12 18:39:19 scn3 i08/syncserver[30016]: Failed to access inbox for jmm
> Jan 12 18:39:19 scn3 i08/master[31569]: process 30016 exited,    
> signaled to death by 11
> [jmmpelto at scn3 ~]$ sudo /usr/lib/cyrus-imapd/mbpath -C    
> /etc/imapd.conf.i08.replica user.jmm
> Invalid mailbox name: user.jmm
> [trying to say "USER jmm" results in sig11 death, no replication]
> --clip--
> -bash-3.2$ /usr/lib/cyrus-imapd/sync_client -v -o -r -C    
> /etc/imapd.conf.i08.master -f -
> ACL user.jmm
> SETACL user.jmm
>   Promoting: ACL user.jmm -> MAILBOX user.jmm
> MAILBOXES user.jmm
> META jmm
> [..however, doing something that gets escalated to creating the user...]
> --clip--
> [jmmpelto at scn3 ~]$ sudo /usr/lib/cyrus-imapd/mbpath -C    
> /etc/imapd.conf.i08.replica user.jmm
> /var/spool/imap/jjjr/j/user/jmm
> [...doesn't result in process death, instead, the user & mailbox do   
>  get replicated]
> --clip--
>
> The irritating thing about this is, I can't reliably recreate the    
> bug. It appears that
>
> - the user name has to be a prefix of already existing usernames
>
> - there has to be at least some (ten? twenty?) usernames the new    
> username is a
> prefix of - however, when trying to create users jmbtest1..9 and    
> jmbtes10..20,
> I wasn't able to recreate the bug with user.jmb (there were 5 'real'  
>   usernames
> with the prefix jmb), even though I was able to hit it with user.jme  
>   that only
> has 18 real usernames...
>
> I didn't have this problem with 2.3.11, so it has to be relatively new. Might
> anyone else have noticed anything similar?
>
>
> --Janne
> --
> Janne Peltonen <janne.peltonen at helsinki.fi> PGP Key ID: 0x9CFAC88B
> Please consider membership of the Hospitality Club    
> (http://www.hospitalityclub.org)
> ----
> Cyrus Home Page: http://cyrusimap.web.cmu.edu/
> Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
> List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
>






More information about the Info-cyrus mailing list