Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
No issues found across 5 files
Shadow auto-approve: would not auto-approve. This PR does not meet the repository auto-approval settings.
Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 4 files (changes from recent commits).
Shadow auto-approve: would not auto-approve. This PR does not meet the repository auto-approval settings.
Re-trigger cubic
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
No issues found across 5 files
Shadow auto-approve: would not auto-approve. This PR does not meet the repository auto-approval settings.
Re-trigger cubic
Large connected groups of detected regions still allocated several full N×N floating-point arrays during cleanup, even after grouping. Compare only the current candidate row, preserving the existing containment decisions, output ordering and every element attribute. Working comparison memory is now linear in the group size; worst-case comparison time can remain quadratic.
Tested on the dedicated SND
nick-oom-perf-oct01usinguticplatform.azurecr.io/core-product-api:20260928-173342, two CPU cores and equal memory limits, against current main. A 4,000-region connected-chain workload throughPageLayoutand the detection-model deduplication path used median peak RSS 1,098.86 → 350.32 MiB and 0.641 → 0.273 seconds across three alternating runs, with identical complete output hashes. Under a 768 MiB limit the baseline pod was OOMKilled (137); this branch completed with the same output. The detector is synthetic so these figures measure the layout-processing stages, not end-to-end document inference latency.Validation:
This is independent of #521, which removes the grouping matrix at the preceding stage. Versions are staggered across the open inference PRs: #518 → 1.6.14, #520 → 1.6.15, #521 → 1.6.16, this PR → 1.6.17; merge them in that order (each rebases its changelog entry above the previous one). Downstream pins still need to adopt the release. These reproductions establish a concrete OOM fix, not attribution or elimination of all production OOMs.