[ https://issues.apache.org/jira/browse/HBASE-4798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13151146#comment-13151146 ]
nkeywal commented on HBASE-4798: -------------------------------- @commiters: for catalog.TestCatalogTrackerOnCluster.testBadOriginalRootLocation, the test is {noformat} ServerName nonsense = new ServerName("example.org", 1234, System.currentTimeMillis()); RootLocationEditor.setRootLocation(zookeeper, nonsense); // Bring back up the hbase cluster. See if it can deal with nonsense root // location. UTIL.startMiniHBaseCluster(1, 1); UTIL.shutdownMiniCluster(); {noformat} It appears that when the root location is invalid, the master cannot be initialized. The exception fails now because I modified the JVMClusterUtil#startup to make sure that the cluster is initialized when we leave the method (with a timeout avec 30s: that what's going on here). I prefer this, because it's a well known state (instead of sometimes initialized; sometimes not, depending on the sleeps that took place). It means that I would have to modify this test case to make it accept the exception. Are you ok? I also look after the other errors. > 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