fix flaky multi example connector consistency (#48206)

Signed-off-by: aarushjain29 <aarushi.jain2@amd.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Andreas Karatzas <akaratza@amd.com>
This commit is contained in:
Aarushi Jain
2026-07-15 09:20:34 +02:00
committed by GitHub
co-authored by Cursor Andreas Karatzas
parent d119beb1b9
commit 9dd2e72828
@@ -318,8 +318,12 @@ def test_multi_example_connector_consistency():
# connector (first nonzero match is chosen), so update_state_after_alloc
# will report those external tokens on that one. Other connectors still
# receive the request's real blocks but with 0 external tokens.
storage1_scheduler_events = _ignore_event_collection(events["storage1-SCHEDULER"])
storage2_scheduler_events = _ignore_event_collection(events["storage2-SCHEDULER"])
storage1_scheduler_events = _events_from_request(
_ignore_event_collection(events["storage1-SCHEDULER"])
)
storage2_scheduler_events = _events_from_request(
_ignore_event_collection(events["storage2-SCHEDULER"])
)
assert storage1_scheduler_events[:4] == [
"on_new_request",
"get_num_new_matched_tokens 0",
@@ -348,8 +352,12 @@ def test_multi_example_connector_consistency():
# return 0 from the first connector, while the second connector has a hit.
# Both connectors receive the request's real blocks, but only the chosen
# (second) connector reports external tokens.
storage1_scheduler_events = _ignore_event_collection(events["storage1-SCHEDULER"])
storage2_scheduler_events = _ignore_event_collection(events["storage2-SCHEDULER"])
storage1_scheduler_events = _events_from_request(
_ignore_event_collection(events["storage1-SCHEDULER"])
)
storage2_scheduler_events = _events_from_request(
_ignore_event_collection(events["storage2-SCHEDULER"])
)
assert storage1_scheduler_events[:4] == [
"on_new_request",
"get_num_new_matched_tokens 0",
@@ -375,6 +383,16 @@ def _ignore_event_collection(events: list[str]) -> list[str]:
return [event for event in events if event not in ignored]
def _events_from_request(events: list[str]) -> list[str]:
# The async engine-core can emit a trailing build_connector_meta from the
# previous generation's final (idle) scheduler step. Depending on timing it
# may be flushed into this window ahead of on_new_request, so anchor the
# comparison on the new request's first event to avoid a flaky ordering.
if "on_new_request" in events:
return events[events.index("on_new_request") :]
return events
def get_connector_events() -> dict[str, list[str]]:
# Read in connector events and reset the files.
import glob