Gabriel39 commented on code in PR #70248:
URL: https://github.com/apache/doris/pull/70248#discussion_r4479035388


##########
be/src/format_v2/parquet/reader/native/page_reader.cpp:
##########
@@ -317,9 +388,15 @@ Status PageReader<IN_COLLECTION, 
OFFSET_INDEX>::get_page_data(Slice& slice) {
     if (UNLIKELY(_io_ctx && _io_ctx->should_stop)) {
         return Status::EndOfFile("stop");
     }
-    slice.size = _cur_page_header.compressed_page_size;
+    slice.size = _serialized_page_size;
     RETURN_IF_ERROR(_reader->read_bytes(slice, _offset, _io_ctx));
     _offset += slice.size;
+    if (_page_read_ctx.encryption != nullptr) {
+        RETURN_IF_ERROR(_page_read_ctx.encryption->decrypt_page(
+                std::span(reinterpret_cast<const uint8_t*>(slice.data), 
slice.size),
+                _crypto_dictionary, _crypto_page, &_decrypted_page));

Review Comment:
   Fixed in c688f3a1772. Decrypted page storage now participates in 
retained/active scratch accounting and the existing reclamation policy. Release 
waits until the page boundary so payload and V2 level views remain valid; a 
separate activity flag preserves initialized storage for reuse. Added a real 32 
MiB page followed by small pages across V1/V2 and UNCOMPRESSED/SNAPPY, checking 
active-page reuse, deferred release, exact values/NULLs and retained scratch at 
most 4 MiB. All 249 related ASAN tests and the full ASAN BE build passed.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to