chibenwa opened a new pull request, #3233: URL: https://github.com/apache/james-project/pull/3233
Reported downstream in https://github.com/linagora/tmail-backend/issues/2684 - `InMemoryMessageIdMapper::findMetadata` returned the metadata of every message of every mailbox. An Email/set update of more than 3 ids with the same patch was turned into a range update spanning the whole mailbox (mark 4 mails as read -> the whole mailbox is read). - `StoreMessageIdManager::messagesMetadata` / `getMessagesReactive`: `groupBy` + `filterWhen` left the groups of unreadable mailboxes unsubscribed. Once ~256 such elements were buffered the Flux never completed (Email/set update hung for every account). Elements are now filtered against a per call cache of the Read right. - Defensive: JMAP Email/set update restricts store metadata to the requested ids. Tests: `MessageIdMapperTest::findMetadataShouldReturnOnlyTheGivenMessage`, `AbstractMessageIdManagerStorageTest::*ShouldCompleteWhenManyMessagesAreNotReadable` (both time out without the fix on memory). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- *Generated automatically* -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
