Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Meta: Multiple IMAP connections using same mailbox are unsafe #188

Closed
foxcpp opened this issue Dec 29, 2019 · 2 comments
Closed

Meta: Multiple IMAP connections using same mailbox are unsafe #188

foxcpp opened this issue Dec 29, 2019 · 2 comments
Assignees
Labels
bug Something isn't working. go-imap Issue that is caused by a problem in go-imap. go-imap-sql Issue that is caused by a problem in go-imap-sql. imap Related to IMAP server implementation ready-for-release Feature is implemented and available for testing in dev branch. It will be included in the next rele
Milestone

Comments

@foxcpp
Copy link
Owner

foxcpp commented Dec 29, 2019

Given 2 clients (A & B) connected and using the same mailbox. Deleting (expunging, in terms of IMAP) messages by client A can make client B act on wrong messages unless there is an explicit synchronization (e.g. CHECK, NOOP, IDLE) before action.

Clients that maintain persistent connections are likely to use IDLE and so will consume any pending updates before doing anything. This greatly reduces the chance of hitting this problem: both clients should do something at the same time and this is unlikely if the account is used only by a single person.

This should still be addressed in the long-term, since the current behavior breaks RFC 3501 by sending EXPUNGE updates when it is not allowed.

This is the meta-issue to link issues in different repositories and also to make it more visible for maddy users. There are changes need for all components (maddy, go-imap-sql backend, go-imap) to actually fix it.

References

@foxcpp foxcpp added bug Something isn't working. go-imap-sql Issue that is caused by a problem in go-imap-sql. go-imap Issue that is caused by a problem in go-imap. imap Related to IMAP server implementation labels Dec 29, 2019
@foxcpp foxcpp pinned this issue Dec 29, 2019
@foxcpp foxcpp added this to the X.Y - "Eventually" milestone Feb 10, 2020
@foxcpp foxcpp removed this from the X.Y - "Eventually" milestone Jul 16, 2020
@foxcpp
Copy link
Owner Author

foxcpp commented Jul 28, 2020

Related work:

@foxcpp foxcpp changed the title Multiple IMAP connections using same mailbox are unsafe Meta: Multiple IMAP connections using same mailbox are unsafe Oct 3, 2020
@foxcpp
Copy link
Owner Author

foxcpp commented Jan 6, 2022

Just merged go-imap-v2 into dev. We now have everything in place to consider this resolved.

@foxcpp foxcpp added this to the 0.6 milestone Jan 6, 2022
@foxcpp foxcpp unpinned this issue Jan 6, 2022
@foxcpp foxcpp added the ready-for-release Feature is implemented and available for testing in dev branch. It will be included in the next rele label Jan 6, 2022
@foxcpp foxcpp self-assigned this Jun 23, 2022
@foxcpp foxcpp closed this as completed Jun 23, 2022
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
bug Something isn't working. go-imap Issue that is caused by a problem in go-imap. go-imap-sql Issue that is caused by a problem in go-imap-sql. imap Related to IMAP server implementation ready-for-release Feature is implemented and available for testing in dev branch. It will be included in the next rele
Projects
None yet
Development

No branches or pull requests

1 participant