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]
