Skip to content

[FIX] AESBlobStoreDAO caused IMAP FETCH to fail when using S3 as a ba…#2174

Merged
Arsnael merged 2 commits intoapache:masterfrom
chibenwa:fix-eas
Apr 4, 2024
Merged

[FIX] AESBlobStoreDAO caused IMAP FETCH to fail when using S3 as a ba…#2174
Arsnael merged 2 commits intoapache:masterfrom
chibenwa:fix-eas

Conversation

@chibenwa
Copy link
Copy Markdown
Contributor

@chibenwa chibenwa commented Apr 2, 2024

…ckend

@chibenwa chibenwa self-assigned this Apr 2, 2024
@chibenwa chibenwa marked this pull request as draft April 2, 2024 19:24
chibenwa added 2 commits April 3, 2024 14:02
When using the AES blobStore, switching the S3 object consumption out of
the eventLoop causes the allocation of ByteBuf items onto the boundedElastic
scheduler. As ByteBuf allocation relies on ThreadLocal, this in turn causes
the instantiation of a way-too-large count of Netty ByteBuf arena and can
be perceived as a Native memory leak (far over 1GB allocation, while before
usage was limited to ~150MB).

As we cannot rely on the previous patch that did block on the S3 driver
Netty event loop, and as we cannot keep the current native memory
over-consumption, this patch disables the intermediary file buffering
when using the AESBlobStore. This was introduced in the first place
to mitigate the lack of IMAP backpressure. That being solved we can afford
paying a bit of HEAP onto the AES blob store.

Note the approximate pre-sizing of the output stream in order to limit
allocation.
@chibenwa chibenwa marked this pull request as ready for review April 3, 2024 12:17
@Arsnael Arsnael merged commit 5d85bac into apache:master Apr 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants