[client] LimitBatchScanner leaks Arrow read context on log-table LIMIT scan
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 78/100
Hướng nghiên cứu
Bắt đầu trong phần triển khai LimitBatchScanner của fluss-client tại parseLimitScanResponse(), tập trung vào nhánh bảng log gọi LogRecordReadContext.createReadContext(). Đảm bảo read context được đóng sau khi phân tích cú pháp và khi việc phân tích cú pháp thất bại; hoàn tất nghĩa là các lần quét LIMIT giải phóng Arrow allocator trước khi scanner đóng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
LimitBatchScanner.parseLimitScanResponse() creates a LogRecordReadContext for log tables (no primary key) and never closes it.
For Arrow log format, LogRecordReadContext.createReadContext() allocates a RootAllocator backed by the scanner's ChunkedFactory. The record iterator is closed, and rows are deep-copied, but the read context itself is left open. LimitBatchScanner.close() only closes chunkedFactory, so the allocator and its off-heap chunks can leak on every LIMIT scan of an Arrow log table.
LogRecordReadContext readContext =
LogRecordReadContext.createReadContext(...);
// iterated, then dropped without readContext.close()
This is a different path from #4345 (LogFetcher / LogScannerImpl close chain).
Expected
LogRecordReadContext is closed after parsing (including on parse failure), so Arrow allocators are released before the scanner is closed.
How to reproduce
- Create an Arrow log table (no primary key).
- Run a
LIMITscan /LimitBatchScanner.pollBatch(). - Close the scanner. The read-context allocator is never closed.
Component
fluss-client — LimitBatchScanner
- Ngôn ngữ chính
- Java
- Star
- 2.2k
- Fork
- 656
- Merge trung bình
- 2 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 120
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của apache/fluss
-
[CI] NettyClientTest.testServerDisconnection may fail with DisconnectExceptionCó thể đã có người làm @yangshangqing95 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[lake/iceberg] Reserved write-mode properties can be set and reset through their `iceberg.` keyCó thể đã có người làm @aphenix-r7 đã nhận 2 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
apache/fluss#4658 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[common] Decimal#hashCode is inconsistent with Decimal#equalsCó thể đã có người làm @firasbouzazi đã nhận 13 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/fluss#4538 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[security] PlainSaslServerProvider conflicts with Hadoop SASL provider causing authentication failureCó thể đã có người làm @xinzhang-hello đã nhận 19 ngày trước. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[server] KV snapshot scheduling stops permanently after a transient snapshot-init failureCó thể đã có người làm @zhang-arvin đã nhận 19 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
apache/fluss#4489 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
PhasetransCrystal/FPSMatch#47 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Remove unactionable info logĐang mởbug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 76/100
apache/maven-toolchains-plugin#205 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
Maintainer thường phản hồi trong vòng 1 ngày
-
type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày