-
Notifications
You must be signed in to change notification settings - Fork 259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(sync): mailboxes not being synced due to short circuiting #8575
Conversation
I'm not sure if it's entirely relevant, but I only have a single account and i'm still seeing the error despite patching in these changes. |
You might need to resync your account by removing it and adding it again. This fix will only prevent the issue from happening in the future. It does not necessarily fix all emails that are already missing. |
If we reset sync tokens, would we able to fix historically incorrect data? |
@st3iny Even after removing my account and re-adding it I'm still seeing the same issue for old and new emails. |
@meichthys That is bad. Are you sure that you patched the mail app and didn't update it since? Updating will overwrite the patch. Adding the account again should be sufficient. |
@st3iny Yes, here is the content of my
There is however, another |
So I've been testing this PR at my personal instance for about a week now and it fixes the issue for me. I think we should move on with this PR.
Hmm, that will trigger a potential costly initial sync. It should fix the issue though. Alternatively, it would also be sufficient to trigger a vanished sync without QRESYNC once, which will just send all UIDs to the server and correctly detect vanished UIDs. That would require some extra code. mail/lib/IMAP/Sync/Synchronizer.php Lines 160 to 166 in ae8d245
|
/backport to stable3.2 |
/backport to stable2.2 |
Signed-off-by: Richard Steinmetz <[email protected]>
ae8d245
to
7c2c806
Compare
Static analysis errors are unrelated. |
Let's get this in to have new accounts sync properly and tackle historically incorrect data separately.
We'll probably have to do this with our own logic because Horde uses QRESYNC if supported. We can fetch all known UIDs in chunks and delete the ones that are not returned. That sounds doable 👍 |
Fix #8223
If a mailbox causes threads to be rebuilt during background sync, all succeeding mailboxes will be skipped due to a short circuit evaluation of the logical or operator.
Consider this piece of code: https://3v4l.org/kK4Dc