SteNicholas opened a new pull request, #386:
URL: https://github.com/apache/paimon-cpp/pull/386

   ### Purpose
   
   Linked issue: close #385
   
   Several Parquet tests open files directly with `arrow::io::ReadableFile` and 
`parquet::arrow::OpenFile`, passing a raw pointer to the fixture's 
`GetArrowPool()` adaptor. Pre-buffering is enabled by default, so an Arrow IO 
thread can drop the last reference to a read buffer after the fixture has been 
torn down. `~PoolBuffer()` then frees into the destroyed pool and 
`paimon-parquet-format-test` crashes with SIGSEGV, as seen in 
`VariantParquetTest`.
   
   This PR switches these raw readers to `arrow::default_memory_pool()`, which 
outlives any in-flight async read. It also adds the error status to the 
`ReadableFile::Open` assertion messages so that failures show why the open 
failed.
   
   Paimon's own read path is unaffected: `ArrowInputStreamAdapter` already 
keeps its pool alive for returned buffers.
   
   ### Tests
   
   Test-only change in:
   - `src/paimon/format/parquet/parquet_file_batch_reader_test.cpp`
   - `src/paimon/format/parquet/parquet_format_writer_test.cpp`
   - `src/paimon/format/parquet/variant_parquet_test.cpp`
   
   The existing cases in `paimon-parquet-format-test` cover the change. They 
were not run locally; CI will run them.
   
   ### API and Format
   
   No.
   
   ### Documentation
   
   No.
   
   ### Generative AI tooling
   
   Generated-by: Claude Code (Claude Opus 5.5)
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
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]

Reply via email to