Repository navigation
test(frontend): pin zmq event plane in realtime Omni mock worker - #16215
glamr-agent wants to merge 4 commits into
Conversation
The mock worker built DistributedRuntime without event_plane, so an ambient NATS_SERVER forced a NATS connection whose startup retry (up to 120s) blocks registration past the 60s worker health check. Pass event_plane="zmq" like realtime_echo_worker.py, and correct the fixture docstring. Refs DYN-4614 Signed-off-by: svc-glamr@nvidia.com <svc-glamr@nvidia.com>
Signed-off-by: svc-glamr@nvidia.com <svc-glamr@nvidia.com>
|
👋 Hi glamr-agent! Thank you for contributing to ai-dynamo/dynamo. Just a reminder: The 🚀 |
Automated evidence record — validation completeValidation status: complete Evidence summary: [3/3 validated] AI review assessment (advisory only): sound Validation result: pass. With Limitations: 6 concurrent copies on 2 CPUs still fail the 60 s health check on both Evidence audit: complete [3/3 validated]. The command report comes from recorded runs. Commands and results [3/3 validated]Generated from the commands recorded during this run. Check 1Builds the changed Dynamo source and confirms that Python can import its compiled extension. Result: Passed ( Command: Not shown because the exact command contained private run data. Check 2Checks the changed files with the repository's fast lint and formatting commands. Result: Passed ( Command: pre-commit run --files tests/frontend/realtime_omni_mock_worker.py tests/frontend/test_realtime_omni_bridge.py --hook-stage manualCheck 3Runs the relevant Python unit tests without requiring a GPU. Result: Passed ( Command: /opt/dynamo/venv/bin/python -m pytest tests/frontend/test_realtime_python_bridge.py components/src/dynamo/vllm/tests/omni/test_omni_realtime_handler.py -v -p no:cacheprovider |
|
No description provided. |
|
factory: @dynamo-ops please run full CI for a3595de |
|
/ok to test a3595de |
✅ Dynamo PR CI passed — run 38326176612 (attempt 1) on
|
Signed-off-by: GLAMR <svc-glamr@nvidia.com>
|
nursery: Added a docstring to |
|
nursery: @dynamo-ops please run full CI for cf62314 |
|
/ok to test cf62314 |
Signed-off-by: GLAMR <svc-glamr@nvidia.com>
|
nursery: @dynamo-ops please run full CI for 1760988 |
|
/ok to test 1760988 |
|
We should investigate why the NATS_SERVER is even relevant in this test in the first place, based on this PR it seems that NATS shouldn't be relevant here? |
|
nursery: I changed nothing further after investigating nv-tusharma's question about
The Python binding's The existing |
|
so the NATS_SERVER is shared across all sessions which is why we need to explicitly pass ZMQ? |
|
nursery: I changed nothing in response to nv-tusharma's follow-up about sharing The mock worker inherits its parent pytest process's environment. Passing |
Closes DYN-4614.
Summary
tests/frontend/realtime_omni_mock_worker.pybuiltDistributedRuntimewithoutevent_plane. WhenNATS_SERVERis set and no event plane is passed, the runtime connects to NATS and retries that first connect for up to 120 s before the worker registers its model. If the NATS server is slow or unreachable,test_websocket_audio_round_tripfails at its 60 s worker health check. The worker now passesevent_plane="zmq", asrealtime_echo_worker.pyalready does.Details:
tests/frontend/realtime_omni_mock_worker.py: passevent_plane="zmq", with a short comment on why.tests/frontend/test_realtime_omni_bridge.py: docstring only. It now says where each process sets the zmq event plane.No production code, timeouts, or retries change.
Validation
With
NATS_SERVER=nats://127.0.0.1:9, the test fails at setup onmain(TIMEOUT: Check URL ... failed after 60.2s) and passes with this change. Reverting only the worker line fails again. With the change, 20/20 sequential runs passed.Limitations: the output of the original CI failure was not available, so this change does not prove that NATS caused that incident. Heavy CPU starvation can still fail the 60 s health check on both
mainand this branch.Where should the reviewer start?
tests/frontend/realtime_omni_mock_worker.py, theDistributedRuntime(...)call inmain().Related Issues
Summary by CodeRabbit