Skip to content

[code sync] Merge code from sonic-net/sonic-utilities:202511 to 202603#326

Merged
mssonicbld merged 2 commits intoAzure:202603from
mssonicbld:sonicbld/202603-merge
May 8, 2026
Merged

[code sync] Merge code from sonic-net/sonic-utilities:202511 to 202603#326
mssonicbld merged 2 commits intoAzure:202603from
mssonicbld:sonicbld/202603-merge

Conversation

@mssonicbld
Copy link
Copy Markdown
Collaborator

* 9d00815c - (origin/202511) [202511] Use ijson streaming in route_check.py for large route tables (#4509) (2026-05-07) [Deepak Singhal]<br>```

deepak-singhal0408 and others added 2 commits May 7, 2026 18:06
… (#4509)

Cherry-pick of master PRs #4205, #4256, #4294, #4436 onto 202511.

Rewrites fetch_routes() to use ijson streaming JSON parsing instead of
loading the entire FRR routing table into memory. This prevents OOM on
devices with 500K+ routes.

Key changes:
- fetch_routes() uses ijson.kvitems() for incremental parsing via Popen pipe
- Route filtering (connected/kernel/static, VRF, selected) moved into
  fetch_routes() to filter during streaming (avoids holding full dict)
- Returns (missing_routes, failing_routes) tuple directly
- missing_routes uses {'prefix': ..., 'protocol': ...} dict format to
  preserve compatibility with mitigate_installed_not_offloaded_frr_routes()
- Added ijson>=3.2.3 dependency in setup.py
- New test file: tests/fetch_routes_chunk_test.py (streaming parser tests)

Differences from master:
- missing_routes uses dict format instead of plain prefix strings (master
  has a latent bug where mitigate function expects entry['prefix'])
- Parse errors raise RuntimeError (fail-closed) with subprocess cleanup
  to avoid pipe deadlock, instead of silently returning empty results
- No unrelated formatting/style changes from master included

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@mssonicbld mssonicbld merged commit 97e8a9d into Azure:202603 May 8, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants