IMAP sync tool (rsync for IMAP)

John Capo jc at irbs.com
Tue Dec 26 12:39:59 EST 2006


Quoting Florin Andrei (florin at andrei.myip.org):
> Marten Lehmann wrote:
> >
> >>Downside: If you have very large messages on the source IMAP servers, 
> >>you better run the script on a machine with lots of RAM. On my system 
> >>it died repeatedly with "out of memory" when it was hitting a 32MB 
> >>message (on-disk size), and the system has 1GB RAM.
> >
> >strange, I didn't experience this while running a sync for >15.000 
> >mailboxes some weeks ago with even larger messages partially.
> 
> Yeah, and after a quick google search it turned out I'm not the only one 
> to experience that.

Its definately a problem with large messages.

   my $string = $from->message_string($f_msg);

A 32MB message occupies a lot more than 32MB when its a Perl string.
Use a temp file instead.

    my $message_file = "/tmp/xfer-$$";
    unlink($message_file);
    $from->message_to_file($message_file, $f_msg);

And further down.

   unless($new_id = $to->append_file($t_fold, $message_file, $flags_f, $d))

Instead of 

   unless($new_id = $to->append_string($t_fold,$string, $flags_f, $d))

> 
> Ah well, except for just one very large message, everything else was 
> transferred OK.
> 
> -- 
> Florin Andrei
> 
> http://florin.myip.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