Fix(cli): Clamp databases max size to a multiple of system page size

fix #2659
This commit is contained in:
ManyTheFish 2022-08-11 10:44:47 +02:00
parent dfbdc565f9
commit cf955a77db
3 changed files with 9 additions and 0 deletions

View file

@ -275,11 +275,13 @@ impl IndexControllerBuilder {
/// Set the index controller builder's max update store size.
pub fn set_max_task_store_size(&mut self, max_update_store_size: usize) -> &mut Self {
let max_update_store_size = clamp_to_page_size(max_update_store_size);
self.max_task_store_size.replace(max_update_store_size);
self
}
pub fn set_max_index_size(&mut self, size: usize) -> &mut Self {
let size = clamp_to_page_size(size);
self.max_index_size.replace(size);
self
}
@ -645,6 +647,11 @@ pub async fn get_arc_ownership_blocking<T>(mut item: Arc<T>) -> T {
}
}
// Clamp the provided value to be a multiple of system page size.
fn clamp_to_page_size(size: usize) -> usize {
size / page_size::get() * page_size::get()
}
#[cfg(test)]
mod test {
use futures::future::ok;