-
Notifications
You must be signed in to change notification settings - Fork 1.6k
GH-3558: Properly close buffers #3559
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 1 commit
a494af3
d1a7cec
00931ba
e4dc4fc
ca0ce18
0ec9fde
a470682
c6e92d1
ffd978e
81297e1
6a2fe5e
4b45d07
8fc07d2
4fbc84e
e1edc2d
cb6d8f5
28778e6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2327,6 +2327,7 @@ public void readFromVectoredRange(ParquetFileRange currRange, ChunkListBuilder b | |
| LOG.error(error, e); | ||
| throw new IOException(error, e); | ||
| } | ||
| builder.addBuffersToRelease(Collections.singletonList(buffer)); | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This assumes the future returns the exact buffer allocated by our allocator. With local checksum verification enabled, Hadoop can return a sliced buffer, so strict allocators like
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Disabling it globally is exactly what where trying to do. There is an open issue on Hadoop that needs to be fixed: https://issues.apache.org/jira/browse/HADOOP-19901 That's not on Parquet to fix or test.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If this range is registered and a later vectored range times out or fails before
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agreed — if a later range times out or fails, the exception propagates before Fixed by transferring ownership on the failure path:
|
||
| ByteBufferInputStream stream = ByteBufferInputStream.wrap(buffer); | ||
| for (ChunkDescriptor descriptor : chunks) { | ||
| builder.add(descriptor, stream.sliceBuffers(descriptor.size), f); | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.