[ 
https://issues.apache.org/jira/browse/ARROW-5536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Todd Farmer reassigned ARROW-5536:
----------------------------------

    Assignee:     (was: Johannes Luong)

This issue was last updated over 90 days ago, which may be an indication it is 
no longer being actively worked. To better reflect the current state, the issue 
is being unassigned. Please feel free to re-take assignment of the issue if it 
is being actively worked, or if you plan to start that work soon.

> [JAVA] Leak in JdbcToArrowUtils
> -------------------------------
>
>                 Key: ARROW-5536
>                 URL: https://issues.apache.org/jira/browse/ARROW-5536
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: Java
>            Reporter: Johannes Luong
>            Priority: Major
>
> {{JdbcToArrowUtils::updateVector(VarCharVector, String, boolean, int)}} does 
> not release the memory that it allocates for the {{NullableVarCharHolder}}. 
> This can be verified by changing the first lines of 
> {{JdbcToArrowTest::testJdbcToArrowValues()}} to the following:
> {code:java}
> RootAllocator allocator = new RootAllocator(Integer.MAX_VALUE);
> VectorSchemaRoot root = JdbcToArrow.sqlToArrow(conn, table.getQuery(), 
> allocator, Calendar.getInstance());
> testDataSets(root);
> root.close();
> assertEquals(allocator.getAllocatedMemory(), 0);
> {code}
>  
> The leak can be fixed by closing the buffer in {{updateVector}}. However, I 
> would propose to not use the {{NullableVarCharHolder}} in the first place 
> because it creates an unnecessary copy of the string. Instead, I would use 
> {{BaseVariableWidthVector::setSafe(int index, byte[] value)}} and 
> {{BaseVariableWidthVector::setNull(int index)}} directly.
> In addition, I would propose to check for leaks in JdbcToArrowTest.
> I am willing to create a patch, so please let me know what approach is 
> preferred.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to