Guard cached parquet GPU columns during compression - #15083
Conversation
| @@ -385,7 +385,10 @@ class ParquetCachedBatchSerializer extends GpuCachedBatchSerializer { | |||
| ) | |||
| GpuColumnVector.from(v, schema(i).dataType) | |||
There was a problem hiding this comment.
Intermediate
v resource still unguarded on exception path
ifTrueThenDeepConvertTypeAtoTypeB always returns an owned ColumnVector — either copyToColumnVector() (new allocation) or incRefCount() (bumped ref). If GpuColumnVector.from(v, schema(i).dataType) throws (e.g., the assert typeConversionAllowed(...) fires when running with -ea), v is leaked because nothing closes it on the failure path. Wrapping the from call with closeOnExcept(v) { v => GpuColumnVector.from(v, schema(i).dataType) } would close v only on exception while correctly leaving ownership with the new GpuColumnVector on success.
Signed-off-by: Minh Vu <vuhoangminh97@gmail.com>
5a54cb4 to
881e71d
Compare
|
NOTE: release/26.08 has been created from main. Please retarget your PR to release/26.08 if it should be included in the release. |
No issue filed.
Description
Guard the GPU column vectors created during cached-Parquet compression until they are handed off to a
ColumnarBatch.safeMapcloses partially produced vectors if a later conversion fails, andcloseOnExceptprotects the handoff into the batch.Checklists
Documentation
Testing
(Please provide the names of the existing tests in the PR description.)
Performance