-
Notifications
You must be signed in to change notification settings - Fork 29k
[SPARK-23415][SQL][TEST] Make behavior of BufferHolderSparkSubmitSuite correct and stable #20636
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
Conversation
|
Test build #87541 has finished for PR 20636 at commit
|
|
Thank you for pining me and working on this issue, @kiszk . |
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.
Ping, @liufengdb and @gatorsmile .
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.
ping @liufengdb and @gatorsmile
|
ping @liufengdb and @gatorsmile |
|
ping @gatorsmile and @liufengdb |
|
ping @gatorsmile and @hvanhovell |
|
ping @hvanhovell |
|
retest this please |
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.
Do we still support 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.
Good question. Several tests still seem to use local-cluster. Is it better to use local while it may require more memory?
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.
ping @hvanhovell
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.
I think we support this for testing purpose since, IIRC, that's going to make separate processes for workers.
|
Test build #89146 has finished for PR 20636 at commit
|
|
retest this please |
|
Test build #89447 has finished for PR 20636 at commit
|
|
retest this please |
|
Test build #89475 has finished for PR 20636 at commit
|
|
retest this please |
|
Test build #89477 has finished for PR 20636 at commit
|
|
Test build #89485 has finished for PR 20636 at commit
|
|
retest this please |
|
Test build #89494 has finished for PR 20636 at commit
|
|
@kiszk Why do we need to allocate a large array several times? I thought the objective of this test is to check if we can safely grow to int max? I don't really see the need for resetting the array before every grow call. Am I missing something here? |
|
Ah, I see. I thought the objective is to check if we can safely allocate buffer with each size. According to my understanding, you think to reuse buffer is an intention of this test. While |
|
@hvanhovell BTW, could you favor me? At In the method Then, we execute As a result, when Should we keep this? Or, should we add check if |
|
Test build #89653 has finished for PR 20636 at commit
|
|
@hvanhovell When I added the new check code to see whether the growth value is negative, we see the following error. Finally, How do we handle this? Should we pass |
|
ping @hvanhovell |
2 similar comments
|
ping @hvanhovell |
|
ping @hvanhovell |
|
cc @cloud-fan |
|
retest this please |
1 similar comment
|
retest this please |
|
Test build #93123 has finished for PR 20636 at commit
|
|
retest this please |
|
Test build #93147 has finished for PR 20636 at commit
|
|
retest this please |
|
Test build #93153 has finished for PR 20636 at commit
|
|
retest this please |
|
Test build #93158 has finished for PR 20636 at commit
|
|
cc @cloud-fan |
1 similar comment
|
cc @cloud-fan |
| holder.grow(ARRAY_MAX + 1 - holder.totalSize()) | ||
| assert(false) | ||
| } catch { | ||
| case _: UnsupportedOperationException => assert(true) |
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.
Fix the indents here. assert(true) is a no-op, so just omit it. assert(false) is less useful than fail(...message...), above. Let an unexpected Throwable just fly out of the method to fail it rather than swallow it. But do you really just want to use intercept here?
| "--master", "local-cluster[2,1,1024]", | ||
| "--driver-memory", "4g", | ||
| "--master", "local-cluster[1,1,7168]", | ||
| "--driver-memory", "7g", |
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.
Hm, just wondering if it's going to be problematic that the test now spawns a job that needs more than 7G of RAM? maybe I misunderstand.
|
Test build #94426 has finished for PR 20636 at commit
|
|
Test build #94434 has finished for PR 20636 at commit
|
|
Test build #94436 has finished for PR 20636 at commit
|
|
retest this please |
|
Test build #94463 has finished for PR 20636 at commit
|
|
Test build #94465 has finished for PR 20636 at commit
|
|
retest this please |
|
Test build #94472 has finished for PR 20636 at commit
|
|
retest this please |
|
LGTM |
|
Test build #94477 has finished for PR 20636 at commit
|
|
thanks, merging to master! |
What changes were proposed in this pull request?
This PR addresses two issues in
BufferHolderSparkSubmitSuite.BufferHolderSparkSubmitSuitetried to allocate a large object several times, it actually allocated an object once and reused the object.BufferHolderSparkSubmitSuitemay fail due to timeoutTo assign a small object before allocating a large object each time solved issue 1 by avoiding reuse.
To increasing heap size from 4g to 7g solved issue 2. It can also avoid OOM after fixing issue 1.
How was this patch tested?
Updated existing
BufferHolderSparkSubmitSuite