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

nkeywal commented on HBASE-4798:
--------------------------------

I will add the spaces.

sleeper.sleep() does not sleep :-). It waits and can be interrupted by a 
notify. As there is notification here, I though it was better to have a raw 
sleep. As least I need to create a specific sleeper as they don't share the 
notification.

on ZKUtil it must be an error, I will remove it.

On root location I played with it but can't make it work or fails properly. 
With my modif (I will revert them to compare), it cannot be initialized (it can 
be stopped if you don't wait for the initialisation). In the code I see that 
HMaster waits for the region server (waitForRegionServers). This function does 
finish until there is not at least one region (whatever the timeout you need to 
have one region or more to continue. The zookeeper check is done later). And 
it's only after this function that assignRootAndMeta is called. So if the 
region are using the wrong data as well the master cannot continue as no region 
will be registered. Actually


                
> Sleeps and synchronisation improvements for tests
> -------------------------------------------------
>
>                 Key: HBASE-4798
>                 URL: https://issues.apache.org/jira/browse/HBASE-4798
>             Project: HBase
>          Issue Type: Improvement
>          Components: master, regionserver, test
>    Affects Versions: 0.94.0
>         Environment: all
>            Reporter: nkeywal
>            Assignee: nkeywal
>            Priority: Minor
>         Attachments: 4798_trunk_all.v2.patch
>
>
> Multiple small changes:
> @commiters: Removing some sleeps made visible a bug on 
> JVMClusterUtil#HMaster#waitForServerOnline, so I had to add a synchro point. 
> You may want to review this.
> JVMClusterUtil#HMaster#waitForServerOnline: removed, the condition was never 
> met (test on "!c && !!c"). Added a new synchronization point.
> AssignementManager#waitForAssignment: add a timeout on the wait => not stuck 
> if the notification is received before the wait.
> HMaster#loop: use a notification instead of a 1s sleep
> HRegionServer#waitForServerOnline: new method used by 
> JVMClusterUtil#waitForServerOnline() to replace a 1s sleep by a notification
> HRegionServer#getMaster() 1s sleeps replaced by one 0,1s sleep and one 0,2s 
> sleep
> HRegionServer#stop: use a notification on sleeper to lower shutdown by 0,5s
> ZooKeeperNodeTracker#start: replace a recursive call by a loop
> ZooKeeperNodeTracker#blockUntilAvailable: add a timeout on the wait => not 
> stuck if the notification is received before the wait.
> HBaseTestingUtility#expireSession: use a timeout of 1s instead of 5s
> TestZooKeeper#testClientSessionExpired: use a timeout of 1s instead of 5s, 
> with the change on HBaseTestingUtility we are 60s faster
> TestRegionRebalancing#waitForAllRegionsAssigned: use a sleep of 0,2s instead 
> of 1s
> TestRestartCluster#testClusterRestart: send all the table creation together, 
> then check creation, should be faster
> TestHLog: shutdown the whole cluster instead of DFS only (more standard) 
> JVMClusterUtil#startup: lower the sleep from 1s to 0,1s
> HConnectionManager#close: Zookeeper name in debug message from 
> HConnectionManager after connection close was always null because it was set 
> to null in the delete.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to