Skip to content
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(imap): do a single full sync when QRESYNC is enabled #10035

Merged
merged 1 commit into from
Sep 25, 2024

Conversation

st3iny
Copy link
Member

@st3iny st3iny commented Aug 21, 2024

To minimize the dependence on the cache, we should do a single full sync when QRESYNC is enabled. This is more efficient as Horde contains (and QRESYNC provides) shortcuts for this case.

This PR also makes sure that only a single sync token is used when QRESYNC is enabled. It will always be the new message token as it is the first one in the partial sync logic and will trigger the actual full sync.

This is a follow-up to #8968. We already force all three criteria when QRESYNC is enabled and now we are only performing a single call to Horde for syncing.

Background

The server reports all changes on the initial EXAMINE command when QRESYNC is enabled. Only new messages have to be fetched manually afterwards. Changed and vanished messages are reconciled right away without needing to perform any more fetch commands.

@st3iny st3iny self-assigned this Aug 21, 2024
@st3iny st3iny force-pushed the fix/imap/qresync-single-full-sync branch 2 times, most recently from ba4f87f to f480790 Compare August 31, 2024 10:42
@st3iny st3iny added this to the v4.0.0 milestone Sep 2, 2024
@st3iny st3iny marked this pull request as ready for review September 2, 2024 05:26
Copy link
Member

@ChristophWurst ChristophWurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Will also give this a test

lib/IMAP/Sync/Synchronizer.php Outdated Show resolved Hide resolved
@ChristophWurst ChristophWurst removed this from the v4.0.0 milestone Sep 3, 2024
@kesselb kesselb merged commit e7453e4 into main Sep 25, 2024
34 checks passed
@kesselb kesselb deleted the fix/imap/qresync-single-full-sync branch September 25, 2024 09:52
@kesselb
Copy link
Contributor

kesselb commented Sep 25, 2024

/backport to stable4.0

@st3iny
Copy link
Member Author

st3iny commented Oct 2, 2024

/backport to stable3.7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: ☑️ Done
Development

Successfully merging this pull request may close these issues.

4 participants