A deep investigation into a memory leak in Meilisearch that persisted for 1.5 years. The root cause was twofold: a bumpalo bump allocator misuse where std::Vec objects stored inside bumpalo::Vec never had their drop glue run, and a more significant issue where LMDB (a C library) and Meilisearch used different allocators (system

10m read timeFrom meilisearch.com
Post cover image
Table of contents
Jemalloc to the rescueThe trap of bumpaloThe downsides of using non-Rust dependenciesUsing mimalloc everywhere

Sort: