Skip to content

Commit 073cf3d

Browse files
committed
feat: Only clear message cache on success
1 parent 4ec1b05 commit 073cf3d

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/common/procedure/src/local/runner.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,6 @@ impl Drop for ProcedureGuard {
9595
for key in self.meta.lock_key.keys_to_unlock() {
9696
self.manager_ctx.lock_map.release_lock(key, self.meta.id);
9797
}
98-
99-
// If this is the root procedure, clean up message cache.
100-
if self.meta.parent_id.is_none() {
101-
let procedure_ids = self.manager_ctx.procedures_in_tree(&self.meta);
102-
self.manager_ctx.remove_messages(&procedure_ids);
103-
}
10498
}
10599
}
106100

@@ -147,8 +141,15 @@ impl Runner {
147141
// TODO(yingwen): 1. Add TTL to the metadata; 2. Only keep state in the procedure store
148142
// so we don't need to always store the metadata in memory after the procedure is done.
149143

144+
// Release locks and notify parent procedure.
150145
guard.finish();
151146

147+
// If this is the root procedure, clean up message cache.
148+
if self.meta.parent_id.is_none() {
149+
let procedure_ids = self.manager_ctx.procedures_in_tree(&self.meta);
150+
self.manager_ctx.remove_messages(&procedure_ids);
151+
}
152+
152153
logging::info!(
153154
"Runner {}-{} exits",
154155
self.procedure.type_name(),

0 commit comments

Comments
 (0)