rymurr commented on a change in pull request #7753:
URL: https://github.com/apache/arrow/pull/7753#discussion_r454427669



##########
File path: python/pyarrow/jvm.py
##########
@@ -43,9 +43,14 @@ def jvm_buffer(arrowbuf):
     pyarrow.Buffer
         Python Buffer that references the JVM memory.
     """
+    import jpype
     address = arrowbuf.memoryAddress()
     size = arrowbuf.capacity()
-    return pa.foreign_buffer(address, size, arrowbuf.asNettyBuffer())
+
+    # TODO: why can we not use arrowbuf as the base?

Review comment:
       @wesm ref counting is a possibility. Though I don't see anywhere where 
the ref count of the netty java object is explicitly referenced.  
   
   When the python buffer object is garbage collected there is nothing (as far 
as I can tell) to collect the java based buffer. When the Python object is 
collected it will decrement the python reference count of the java object and 
eventually GC it but we would still have to manually close the Java side buffer 
regardless of it being wrapped in netty or not. So we would have a memory leak 
regardless if we don't carefully clean up buffers. Unless jpype does something 
cool and undocumented w/ Netty buffers.




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to