IOERROR during sync_client -m [Was: Adding a 2.3.x replica]

Adam Tauno Williams awilliam at whitemice.org
Tue Feb 15 10:45:40 EST 2011


> >> >> Is there a recommended Method for bringing up a new replica for an
> >> >> active master (with 1.4 million messages in its mailstore)
> >> If the replica is running, you have to run the following command
> >> to initialise the replica:
> >> sync_client -u -f userlist.txt
> >> userlist.txt is a file containing all users.
> >> This can be done while the master and rolling replication
> >> is running
> > I assume the same can be applied for "-m" mode.
> > 1. Dump a mailbox list using:
> >   /usr/lib/cyrus-imapd/ctl_mboxlist -d | cut -f1 > /tmp/mailbox_list.txt
> > 2.) Run the sync for that mailbox list
> >   /usr/lib/cyrus-imapd/sync_client  -m -v -l -f /tmp/mailbox_list.tx
> this will not bring the sieve scripts in sync. The rolling replication
> will sync them if they change, but it may take a very long time till
> all scripts have been changed by the users.
> > This seems to just-die; but is working if I break-up the mailbox list
> > into units-of-work [rather than all at once].
> did you see errors in your logfiles?

I do see it bailing out on certain mailboxes

<QUOTE>
Feb 15 10:42:28 sardine sync_client[20764]: MAILBOX
user.cconklin.Monticello
Feb 15 10:42:28 sardine sync_client[20764]: MAILBOX
user.cconklin.Nienhuis - Quotes
Feb 15 10:42:28 sardine sync_client[20764]: IOERROR: opening message
file 10 of user.cbaumann.Sent: No such file or directory
Feb 15 10:42:28 sardine sync_client[20764]: UPLOAD received BAD
response: Syntax error in Append at item 10: Invalid flags or missing
message
Feb 15 10:42:28 sardine sync_client[20764]: Error in do_mailboxes():
bailing out!
</QUOTE>

I assume this represents an inconsistency in the mailstore of the
master.

<ASIDE>
I put together a little shell script to page through a dump of the
mailbox list.


#!/bin/bash

START=0
END=`wc -l /tmp/mailbox_list.txt | cut -f1 -d" "`
COUNTER=$START
while [ "$COUNTER" -lt "$END" ];
  do
    COUNTER=`expr $COUNTER + 100`
    head -$COUNTER /tmp/mailbox_list.txt | tail -100
> /tmp/mailbox_list_50.txt
    echo "Starting replication at index $COUNTER : "`head
-1 /tmp/mailbox_list_50.txt`
    echo "Ending replication at "`tail -1 /tmp/mailbox_list_50.txt`
    /usr/lib/cyrus-imapd/sync_client  -m -v -l
-f /tmp/mailbox_list_50.txt
    RESULT="$?"
    echo "Sync exit status is: $RESULT"
    if [ "$RESULT" -ne "0" ]
     then
       echo "NON-ZERO EXIT STATUS"
       tail -100 /var/log/maillog
       exit
     fi
    COUNTER=`expr $COUNTER + 100`
  done
</ASIDE>



More information about the Info-cyrus mailing list