Skip to content

Commit 53ef3be

Browse files
author
Alex Wang
committed
fix(insight): preserve accepted FIFO snapshots
1 parent 68f9a10 commit 53ef3be

2 files changed

Lines changed: 6 additions & 9 deletions

File tree

packages/aws-durable-execution-sdk-python-insight/src/aws_durable_execution_sdk_python_insight/_export_scheduler.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -324,17 +324,13 @@ def schedule(
324324
self._stop_when_idle = False
325325
size = max(0, record_size)
326326
if size > self._max_pending_bytes:
327-
superseded = execution_arn in self._pending
328-
if superseded:
329-
self._drop_pending_execution(execution_arn)
330327
_logger.warning(
331328
"workflow-insight: pending record for %s on %s exceeds the "
332-
"byte budget (%d > %d); dropping this record%s",
329+
"byte budget (%d > %d); dropping this record",
333330
execution_arn,
334331
type(self._exporter).__name__,
335332
size,
336333
self._max_pending_bytes,
337-
" and its superseded pending FIFO" if superseded else "",
338334
)
339335
return
340336
pending = self._pending.get(execution_arn)

packages/aws-durable-execution-sdk-python-insight/tests/test_export_scheduler.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -734,24 +734,25 @@ def test_individually_over_budget_record_does_not_evict_existing_backlog():
734734
assert exported[1:] == ["b" * 700, "c" * 700]
735735

736736

737-
def test_over_budget_replacement_removes_superseded_same_arn_only():
737+
def test_over_budget_record_preserves_accepted_same_arn_fifo():
738738
exporter = BlockingExporter()
739739
scheduler = _ExportScheduler([exporter], max_pending_bytes=3_500)
740740
lane = scheduler._lanes[0]
741741
scheduler.schedule(ARN_A, _rec(ARN_A, "inflight"))
742742
assert _wait_until(exporter.started.is_set)
743-
scheduler.schedule(ARN_A, _rec(ARN_A, "stale-running"))
743+
scheduler.schedule(ARN_A, _rec(ARN_A, "accepted-running"))
744744
scheduler.schedule(ARN_B, _rec(ARN_B, "unrelated"))
745745
scheduler.schedule(
746746
ARN_A,
747747
_rec(ARN_A, "terminal" * 500, status="SUCCEEDED"),
748748
)
749749

750-
assert lane._pending_count() == 1
750+
assert lane._pending_count() == 2
751+
assert lane._pending_record_count() == 2
751752
assert lane._pending_bytes_count() <= 3_500
752753
exporter.release()
753754
scheduler.end_invocation(5.0)
754-
assert exporter.exported_values() == ["inflight", "unrelated"]
755+
assert exporter.exported_values() == ["inflight", "accepted-running", "unrelated"]
755756

756757

757758
def test_retained_size_traverses_slots_after_shallow_size_failure():

0 commit comments

Comments
 (0)