[BUG] Cosmos P1: Non-streaming vector TOP queries silently discard winning results

Đang mở
#51,133 0 bình luận 1 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
azure, java
Lĩnh vực
databases

Hướng nghiên cứu

Read DocumentQueryExecutionContextFactory.java around lines 525–536 and NonStreamingOrderByUtils.java around lines 95–109 to trace how fetch-page sizing affects the non-streaming merge’s candidate limit. Reproduce the six-range skewed TOP 60 case and compare exact top-K membership with an unrestricted reference result. Done when all 60 winning results are retained and regression coverage verifies membership through the factory and query pipeline.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Client Cosmos

Describe the bug
Alan Zimmer's November 6, 2026 audit of com.azure:azure-cosmos:4.84.0-beta.1 reports that a streaming ORDER BY fetch-page optimization also reduces the non-streaming merge's candidate-retention limit. With six ranges and TOP 60, that limit becomes 50. If winning results are concentrated in one range, valid candidates are discarded, yielding too few results or worse matches. Reported priority: P1; silent incorrect query results.

Exception or Stack Trace
N/A; results are silently incorrect.

To Reproduce
Execute a non-streaming vector TOP 60 query across six skewed ranges, with the winning candidates concentrated in one range. Exercise the factory and query pipeline and compare exact top-K membership against an unrestricted reference result.

Code Snippet
No complete executable snippet was supplied. Reported locations: DocumentQueryExecutionContextFactory.java:525-536 and NonStreamingOrderByUtils.java:95-109 in the audited source.

Expected behavior
Fetch-page sizing must not reduce the number of candidates retained for the global top-K merge; all 60 winning results must be retained and returned.

Screenshots
N/A.

Setup (please complete the following information):

  • OS: Not reported.
  • IDE: Not reported.
  • Library/Libraries: com.azure:azure-cosmos:4.84.0-beta.1.
  • Java version: Not reported.
  • App Server/Environment: Non-streaming vector query over six ranges.
  • Frameworks: Not reported.

Dependency mismatch: Not indicated; dependency tree/logs were not supplied.

Additional context
Proposed fix from the audit: separate fetch-page sizing from candidate retention, or exclude non-streaming queries from the streaming optimization.

Regression coverage: exercise the factory/pipeline with six skewed ranges and verify exact top-K membership, not only result count.

Reported reproduction: compiled current-source query components retained 50 results versus 60 with the correct limit. The probe supplied the factory-derived limit and was not a full factory integration test; cached supporting dependencies were used. No live Cosmos calls or full SDK test suite were run, and no repository files were changed. This issue tracks validation and implementation of the proposed fix, not an already-applied fix. Alan recommended addressing this and the failed change-feed initialization finding first.

Information Checklist

  • Bug Description Added
  • Repro Steps Added
  • Setup information Added
Ngôn ngữ chính
Java
Star
2.6k
Fork
2.2k
Merge trung bình
2 ngày 2 giờ
Pull request đã merge (30 ngày)
257

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Azure/azure-sdk-for-java

Tất cả issue của Azure/azure-sdk-for-java

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.