[
https://issues.apache.org/jira/browse/ARROW-15341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Christopher Wolff closed ARROW-15341.
-------------------------------------
Resolution: Fixed
> [Go] ipc.Reader Record Array leak
> ---------------------------------
>
> Key: ARROW-15341
> URL: https://issues.apache.org/jira/browse/ARROW-15341
> Project: Apache Arrow
> Issue Type: Bug
> Components: Go
> Reporter: Christopher Wolff
> Priority: Major
>
> ipc.Reader produces records whose columns have a reference count of two. As a
> result, once the reference count of Records produced by the Reader goes to
> zero, the column arrays will still have a reference count of one and won't be
> properly accounted for.
> The loading of the columns in the record is driven from this loop:
> https://github.com/influxdata/idpe/blob/185d09d8250c456e6b8417fde622f921b8850c06/vendor/github.com/apache/arrow/go/arrow/ipc/file_reader.go#L338
> The memory for the array buffers is allocated here:
> https://github.com/influxdata/idpe/blob/185d09d8250c456e6b8417fde622f921b8850c06/vendor/github.com/apache/arrow/go/arrow/ipc/file_reader.go#L361
> ctx.loadArray ultimately calls array.MakeFromData which returns an array with
> a reference count already set to one.
> Finally, array.NewRecord retains each of its columns:
> https://github.com/influxdata/idpe/blob/cd8adab2c1d512f68376064cb7089067d4df567f/vendor/github.com/apache/arrow/go/arrow/array/record.go#L156
> it seems like the code in ipc.Reader that constructs the column arrays needs
> to release them once the Record has ownership.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)