perf(imap): reuse client connection during initial sync#12897
Open
ChristophWurst wants to merge 2 commits intomainfrom
Open
perf(imap): reuse client connection during initial sync#12897ChristophWurst wants to merge 2 commits intomainfrom
ChristophWurst wants to merge 2 commits intomainfrom
Conversation
AI-assisted: Claude Code (Claude Sonnet 4.6) Signed-off-by: Christoph Wurst <1374172+ChristophWurst@users.noreply.github.com>
AI-assisted: Claude Code (Claude Sonnet 4.6) Signed-off-by: Christoph Wurst <1374172+ChristophWurst@users.noreply.github.com>
kesselb
approved these changes
May 7, 2026
b99a967 to
d9c240c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Based on #12896 to make it more testable.
We need two different IMAP clients during initial sync: one without caching to avoid an OOM and another one with caching to get a valid token. This led to more connections than necessary.
Comparison
For my personal account:
main: 9 connections
here: 6 connections
How to test
DELETE FROM oc_mail_mailboxes WHERE account_id=<id>; UPDATE oc_mail_accounts SET last_mailbox_sync = 0 WHERE id=<id>;occ mail:account:sync <id> -vvvHow to review
Ignore whitespace changes: https://github.com/nextcloud/mail/pull/12897/changes?w=1