Abort the update transaction before calling the update callback
@@ -35,11 +35,14 @@ fn update_awaiter(receiver: Receiver<()>, env: heed::Env, update_fn: Arc<ArcSwap
match update::update_task(&mut writer, index.clone()) {
Ok(Some(status)) => {
- if status.result.is_ok() {
+ match status.result {
+ Ok(_) => {
if let Err(e) = writer.commit() {
error!("update transaction failed: {}", e)
}
}
+ Err(_) => writer.abort(),
+ }
if let Some(ref callback) = *update_fn.load() {
(callback)(status);
