Skip to content

Commit 4f54158

Browse files
committed
Pop legacy entity map entries after handling response
Addresses PR review: _entity_task_id_map and _entity_lock_task_id_map entries were looked up with get() and never removed, so the maps could grow unbounded in long-running orchestrations. Use pop() to release each entry once its eventRaised is handled, matching the new-protocol handlers.
1 parent 0f35c3e commit 4f54158

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

durabletask/worker.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2573,10 +2573,10 @@ def _cancel_timer() -> None:
25732573
raise TypeError("Unexpected sub-orchestration task type")
25742574
elif event.HasField("eventRaised"):
25752575
if event.eventRaised.name in ctx._entity_task_id_map: # pyright: ignore[reportPrivateUsage]
2576-
entity_id, operation, task_id = ctx._entity_task_id_map.get(event.eventRaised.name, (None, None, None)) # pyright: ignore[reportPrivateUsage]
2576+
entity_id, operation, task_id = ctx._entity_task_id_map.pop(event.eventRaised.name, (None, None, None)) # pyright: ignore[reportPrivateUsage]
25772577
self._handle_entity_event_raised(ctx, event, entity_id, task_id, False, operation)
25782578
elif event.eventRaised.name in ctx._entity_lock_task_id_map: # pyright: ignore[reportPrivateUsage]
2579-
entity_id, task_id = ctx._entity_lock_task_id_map.get(event.eventRaised.name, (None, None)) # pyright: ignore[reportPrivateUsage]
2579+
entity_id, task_id = ctx._entity_lock_task_id_map.pop(event.eventRaised.name, (None, None)) # pyright: ignore[reportPrivateUsage]
25802580
self._handle_entity_event_raised(ctx, event, entity_id, task_id, True)
25812581
else:
25822582
# event names are case-insensitive

0 commit comments

Comments
 (0)