lf_interop_zoom.py: prevent test hangs and implement coordinate-skipping in robo/band-steering test - #83
Open
GSMPraneeth-candela wants to merge 2 commits into
Open
lf_interop_zoom.py: prevent test hangs and implement coordinate-skipping in robo/band-steering test#83GSMPraneeth-candela wants to merge 2 commits into
GSMPraneeth-candela wants to merge 2 commits into
Conversation
- check_gen_cx(): track how long each generic endpoint has been stuck (non-idle or unreachable/deleted) and give up waiting on it after stall_timeout seconds instead of blocking forever. - wait_for_host_ready() / wait_for_test_start(): add 5-minute and 3-minute timeouts respectively; both now return True/False instead of hanging indefinitely or calling sys.exit() directly - run() / run_robo_test(): propagate those failures — skip the current coordinate and continue with the next one, or abort the whole robo test if the very first coordinate's host never comes up (signals a host device problem rather than a location issue). - create_host(): reset created_cx/created_endp per coordinate so start_cx()/stop_cx()/cleanup() only act on the current round's CXs instead of re-processing every stale entry from prior coordinates (root cause of repeated "Couldn't find endpoint"/"Invalid argument" errors during cleanup). - Replace print() calls with logger.info/debug/error throughout, adding function/route context to each message. VERIFIED CLI: python3 lf_interop_zoom.py --duration 1 --lanforge_ip "192.168.245.117" --signin_email "candelatech2@gmail.com" --signin_passwd 'WayAround$999' --participants 1 --audio --video --upstream_port 192.168.245.233 --api_stats_collection --resources 1.113,1.22 Signed-off-by: GSMPraneeth-candela <praneeth.gude@candelatech.com>
…chable coordinates - Stop band-steering test from sys.exit()'ing when a coordinate can't be reached; skip it and continue to the next one instead, matching run_robo_test's existing behavior - Remove a duplicate append into failed_coords on the aborted path - Log the coordinate count alongside the coordinates-to-visit list for both band-steering and robo tests - Increase wait_for_host_ready timeout to 600s and include the host endpoint name in its log messages VERIFIED CLI: python3 lf_interop_zoom.py --duration 1 --lanforge_ip "192.168.245.117" --signin_email "candelatech2@gmail.com" --signin_passwd 'WayAround$999' --participants 1 --audio --video --upstream_port 192.168.245.233 --api_stats_collection --resources 1.113,1.22 Signed-off-by: GSMPraneeth-candela <praneeth.gude@candelatech.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this fixes:
Test used to hang forever if a device (endpoint) got stuck or unreachable — now each endpoint has a timeout, and the test gives up on it and moves on instead of blocking indefinitely.
Waiting for the host device to come up and waiting for the test to start could also hang forever — both now time out (5 min and 3 min) and return a clear pass/fail instead of freezing or hard-exiting the script.
Stale data from previous coordinates was leaking into new ones — leftover connection/endpoint info from an earlier location wasn't being cleared, which caused repeated "Couldn't find endpoint" / "Invalid argument" errors during cleanup. Now each coordinate starts fresh.
One bad coordinate used to kill the whole test run (sys.exit()), both in the robo test and the band-steering test. Now it just skips that coordinate and continues — unless the very first coordinate fails, which usually means the device itself is broken, so the test aborts early in that case.
Cleaned up logging — replaced scattered print() statements with proper logger.info/debug/error calls that include which function/step they came from, and added coordinate counts to the log output for easier debugging.
Testing: Verified manually against a live LANforge setup with real sign-in credentials, audio/video participants, and API stats collection enabled
VERIFIED CLI:
python3 lf_interop_zoom.py --duration 1 --lanforge_ip "192.168.245.117" --signin_email "candelatech2@gmail.com" --signin_passwd 'WayAround$999' --participants 1 --audio --video --upstream_port 192.168.245.233 --api_stats_collection --resources 1.113,1.22