[ 
https://issues.apache.org/jira/browse/PHOENIX-6288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17262139#comment-17262139
 ] 

Istvan Toth edited comment on PHOENIX-6288 at 1/10/21, 9:57 AM:
----------------------------------------------------------------

In theory I am not against splitting some tests into a new module.

However, that would only help us if those were running on different VMs / 
executors.
Our current test setup is not prepared for that, and hogging even more ASF 
Hadoop executors may not go down well.
(We are already using 7 for a commit into both branches)

As long as we stick to single VM/executor, increasing forkCount via numForkedIT 
is better than splitting the tests into modules and running the with --threads.

Say, we split the tests into two new modules, one with a run time of 1, and one 
with a runtime of 2, setting forkCount=8 for each amd running it with 
--threads=2.
In this case, for the first half of the execution we'll have 16 JVMs running 
(and using resources), while in the second half we have 8 JVMs running.
Keeping the tests in a single module with forkCount=16 will generate the same 
maximum load on the executor, but the tests will finish in 75% of the time 
(assuming infinite resources on the VM). 

Thinking about it, we can split test execution with failsafe groups / 
@Categories the same way as with modules. 
Say, if we ran on two VMs, we could use one to run the @NeedsOwnCluster tests, 
and the other for the rest.


was (Author: stoty):
In theory I am not against splitting some tests into a new module.

However, that would only help us if those were running on different VMs / 
executors.
Our current test setup is not prepared for that, and hogging even more ASF 
Hadoop executors may not go down well.
(We are already using 7 for a commit into both branches)

As long as we stick to single VM/executor, increasing forkCount via numForkedIT 
is better than splitting the tests into modules and running the with --threads.

Say, we split the tests into two new modules, one with a run time of 1, and one 
with a runtime of 2, setting forkCount=8 for each amd running it with 
--threads=2.
In this case, for the first half of the execution we'll have 16 JVMs running 
(and using resources), while in the second half we have 8 JVMs running.
Keeping the tests in a single module with forkCount=16 will generate the same 
maximum load on the executor, but the tests will finish in 75% of the time 
(assuming infinite resources on the VM). 

Thinking about it, we can split test execution with failsafe groups / 
@Categories as well as with modules. 
Say, if we ran on two VMs, we could use one to run the @NeedsOwnCluster tests, 
and the other for the rest.

> Minicluster startup problems on Jenkins
> ---------------------------------------
>
>                 Key: PHOENIX-6288
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6288
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Istvan Toth
>            Assignee: Istvan Toth
>            Priority: Critical
>             Fix For: 5.1.0, 4.16.0
>
>
> We are sporadically getting Test failures on Jenkins that are caused by the 
> miniCluster startup timeouts.
> {noformat}
> Caused by: java.lang.RuntimeException: Master not active after 30000ms at 
> org.apache.hadoop.hbase.util.JVMClusterUtil.waitForEvent(JVMClusterUtil.java:232)
>  
> at 
> org.apache.hadoop.hbase.util.JVMClusterUtil.startup(JVMClusterUtil.java:188)
> at 
> org.apache.hadoop.hbase.LocalHBaseCluster.startup(LocalHBaseCluster.java:430) 
> at org.apache.hadoop.hbase.MiniHBaseCluster.init(MiniHBaseCluster.java:259) 
> ... 43 more
> {noformat}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to