Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Add JNI methods for detecting and purging non-empty nulls from LIST and STRUCT #12742
Add JNI methods for detecting and purging non-empty nulls from LIST and STRUCT #12742
Changes from 16 commits
0f72ac7
2b29f3b
7abf384
097a09a
dac0b21
9c1ecc0
d9bd29a
0a77f17
a70910c
faa5e76
7cd46bd
7378c6a
01688bb
6b12700
2843bc8
fbb5e49
508b9e6
a8a1106
b1f84cb
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only the returned ColumnView is not enough. There are more local variables/columns need to be closed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ugh, I am rushing through this and context-switching isn't helping either. I think it will make sense for me to close all the local allocations and leave only the returned vector to be closed by the caller.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CI failed because there is memory leak in Java tests. Sorry I overlooked the Java tests. Please fix them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ColumnVector
as well asHostColumnVector
must be wrapped intry
blocks. Probably the buffer vars need to be wrapped too.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm... makes me want to have this failure on my local so we can avoid this. It will still be good to get to the bottom of this discrepancy.
In the meanwhile, I will push a fix. Thanks for pointing us to this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed, the discrepancy isn't ideal.
Could it be caused by the types of GPUs that are used in CI vs. on our local machines?
I'm wondering if that or the amount of memory on a given GPU would contribute to this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe there is a variable that controls the test behavior, and that var is set by the local environment. @revans2 Do you know about this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If a memory leak happens and java's GC is fast, then the leak is cleared up before RMM is shut down and there is no error. If GC is slow, then the leak is not cleared and you get the error. We have a flag to print out messages to help debug leaks, but it is off by default because it makes the tests take a lot longer. Just set
-Dai.rapids.refcount.debug=true
on the maven commend line when running the tests. Even if they pass you can then look at the logs to see if any leaks were detected and use the stack traces to track down what is leaked and why.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But in this case aren't the vectors off the heap? Did you mean the MemoryCleaner instead of GC?