Threading and locking

Leif Walsh leif.walsh at gmail.com
Wed Dec 1 14:40:51 GMT 2010


I just joined this mailing list because I was having locking issues
syncing multiple accounts, and it seems I've caught the end of a pertinent
discussion.

On Wed, 1 Dec 2010, Sebastian Spaeth wrote:

> Anyway, the same problems would occur if we sync 2 Maildirs from one
> IMAP account, e.g.
> 
> [Account 1]
> IMAP1 <-> Maildir1
> [Account 2]
> IMAP1 <-> Maildir2
> 
> (which certainly should work, but currently finish with undeterministic
> results)

>From the default config file:

# OfflineIMAP can use multiple connections to the server in order
# to perform multiple synchronization actions simultaneously.
# This may place a higher burden on the server. In most cases,
# setting this value to 2 or 3 will speed up the sync, but in some
# cases, it may slow things down. The safe answer is 1. You should
# probably never set it to a value more than 5.

For this reason (of course, now reading it I see that the safe answer is
1), I have maxsyncaccounts and maxconnections set to 3.  The sync is a
remote gmail account to a local imap account, and the only place it uses
parallelism is to sync to different folders within the imap account.

I've never seen data corruption, but I have seen deadlocks, and I have
some coredumps I took during a crash once, if anyone would like to see or
wants me to dig up specifics.

It says that the offending line is 119 in threadutil.py, which is
"time.sleep(1)" at the end of exitnotifymonitorloop.

I don't know how helpful this is or if that's where the conversation has
already been, but if I can provide more details, I will.  Thanks.

-- 
Cheers,
Leif




More information about the OfflineIMAP-project mailing list