Mike Pontillo created ARROW-7553:
------------------------------------
Summary: Unable to free all memory allocated when creating a
GArrowSchema
Key: ARROW-7553
URL: https://issues.apache.org/jira/browse/ARROW-7553
Project: Apache Arrow
Issue Type: Bug
Components: C, GLib
Affects Versions: 0.15.1
Environment: Ubuntu Focal with Linuxbrew packages installed
Reporter: Mike Pontillo
I was not able to run the test code in [this
gist|https://gist.github.com/mpontillo/cfbe7ebbf0b0f2acf31063512439bde7] (and
corresponding [GitHub issue|https://github.com/apache/arrow/issues/6164])
without encountering a memory leak via {{garrow_schema_get_type_once}}
(according to {{valgrind}}):
{code:java}
24 bytes in 1 blocks are possibly lost in loss record 192 of 486
at 0x4A391AF: realloc (vg_replace_malloc.c:836)
by 0x53B5D97: g_realloc (gmem.c:164)
by 0x5128108: type_node_any_new_W (gtype.c:502)
by 0x512D9EC: g_type_register_static (gtype.c:2766)
by 0x512DDB4: g_type_register_static_simple (gtype.c:2719)
by 0x4CB3CF8: garrow_schema_get_type_once (in
/home/linuxbrew/.linuxbrew/Cellar/apache-arrow-glib/0.15.1_1/lib/libarrow-glib.so.15.0.1)
by 0x4CB3E40: garrow_schema_get_type (in
/home/linuxbrew/.linuxbrew/Cellar/apache-arrow-glib/0.15.1_1/lib/libarrow-glib.so.15.0.1)
by 0x4CB4098: garrow_schema_new_raw(std::shared_ptr<arrow::Schema>*) (in
/home/linuxbrew/.linuxbrew/Cellar/apache-arrow-glib/0.15.1_1/lib/libarrow-glib.so.15.0.1)
by 0x4CB5860: garrow_schema_new (in
/home/linuxbrew/.linuxbrew/Cellar/apache-arrow-glib/0.15.1_1/lib/libarrow-glib.so.15.0.1)
by 0x401219: main (main.c:13)
{code}
I'm not positive if this is an actual bug in {{apache-arrow-glib}} or if my
test code is incorrect, but I thought I would file an issue here (in addition
to my question posted as a GitHub issue) for greater visibility.
It looks like the {{realloc}} call actually happens via {{glib}}; is this a
one-time type registration that isn't expected to be cleaned up until the
process exits? (I couldn't find a reference to {{garrow_schema_get_type_once}}
in the {{arrow}} code.) I wanted to be certain, since I expect to use
{{arrow-glib}} within a long-running process.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)