#!/bin/cat
$Id: FAQ.User_Concurrent_Access.txt,v 1.6 2022/05/05 13:18:29 gilles Exp gilles $

This document is also available online at
https://imapsync.lamiral.info/FAQ.d/
https://imapsync.lamiral.info/FAQ.d/FAQ.User_Concurrent_Access.txt


=======================================================================
              Imapsync and user concurrent access.
=======================================================================

=======================================================================
Q. What happens if a user access the mailbox during the transfer process?

R. Think all potential problems with a sync between
   a master/source/host1 and a slave/destination/host2

What happens when a user access syncing accounts depends
on what he does, where he does and when. 

As a summary, reading is safe, writing/deleting is not.

Details:

* Reading: no problem anywhere, at source/host1 or at destination/host2,
           anytime. Reading is safe.

* Writing at source/host1:
  * adding folder       => will need a resync after
  * deleting folder     => folders deletions are not synced unless --delete2folders
  * deleting message    => messages deletions are not synced unless --delete2
  * adding message      => will need a resync
  * moving message      => will need a resync. Moving is like adding + deleting 
                           so --delete2 is needed to sync the deletion.
  * message flag change => will need a resync

Let's more precise about timing.
Imapsync works per folder, one folder at a time.

If imapsync has already synced a folder during a run, 
what happens to this folder now won't be synced by the current run.

If imapsync has not already synced a folder during a run, 
what happens to this folder now will be synced by the current run.

If imapsync is syncing a folder during a run,
what happens to this folder now depends on when things happen.
Imapsync starts by listing messages and getting meta data about them,
Message-Id, Date, Size.
A message deleted just after the listing, won't be synced.
A new message arriving just after the listing, won't be synced.


* Writing at destination/host2:
  * adding folder       => no problem, unless --delete2folders is used
  * deleting folder     => will reappear by a new sync
  * adding message      => no problem, unless --delete2 is used on next sync.
  * deleting message    => might reappear by a new sync.
  * message flag change => will be reseted by a new sync.



=======================================================================
=======================================================================