You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ra...@apache.org on 2013/11/12 16:42:58 UTC
svn commit: r1541112 - in /hbase/trunk/hbase-server/src:
main/java/org/apache/hadoop/hbase/master/ServerManager.java
test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java
Author: rajeshbabu
Date: Tue Nov 12 15:42:58 2013
New Revision: 1541112
URL: http://svn.apache.org/r1541112
Log:
HBASE-9902 Region Server is starting normally even if clock skew is more than default 30 seconds(or any configured). -> Regionserver node time is greater than master node time(Kashif)
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java?rev=1541112&r1=1541111&r2=1541112&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java Tue Nov 12 15:42:58 2013
@@ -305,7 +305,7 @@ public class ServerManager {
*/
private void checkClockSkew(final ServerName serverName, final long serverCurrentTime)
throws ClockOutOfSyncException {
- long skew = System.currentTimeMillis() - serverCurrentTime;
+ long skew = Math.abs(System.currentTimeMillis() - serverCurrentTime);
if (skew > maxSkew) {
String message = "Server " + serverName + " has been " +
"rejected; Reported time is too far out of sync with master. " +
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java?rev=1541112&r1=1541111&r2=1541112&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestClockSkewDetection.java Tue Nov 12 15:42:58 2013
@@ -86,19 +86,38 @@ public class TestClockSkewDetection {
long warningSkew = c.getLong("hbase.master.warningclockskew", 1000);
try {
+ //Master Time > Region Server Time
+ LOG.debug("Test: Master Time > Region Server Time");
LOG.debug("regionServerStartup 2");
InetAddress ia2 = InetAddress.getLocalHost();
sm.regionServerStartup(ia2, 1235, -1, System.currentTimeMillis() - maxSkew * 2);
- fail("HMaster should have thrown an ClockOutOfSyncException but didn't.");
+ fail("HMaster should have thrown a ClockOutOfSyncException but didn't.");
} catch(ClockOutOfSyncException e) {
//we want an exception
LOG.info("Recieved expected exception: "+e);
}
+ try {
+ // Master Time < Region Server Time
+ LOG.debug("Test: Master Time < Region Server Time");
+ LOG.debug("regionServerStartup 3");
+ InetAddress ia3 = InetAddress.getLocalHost();
+ sm.regionServerStartup(ia3, 1236, -1, System.currentTimeMillis() + maxSkew * 2);
+ fail("HMaster should have thrown a ClockOutOfSyncException but didn't.");
+ } catch (ClockOutOfSyncException e) {
+ // we want an exception
+ LOG.info("Recieved expected exception: " + e);
+ }
+
+ // make sure values above warning threshold but below max threshold don't kill
+ LOG.debug("regionServerStartup 4");
+ InetAddress ia4 = InetAddress.getLocalHost();
+ sm.regionServerStartup(ia4, 1237, -1, System.currentTimeMillis() - warningSkew * 2);
+
// make sure values above warning threshold but below max threshold don't kill
- LOG.debug("regionServerStartup 3");
- InetAddress ia3 = InetAddress.getLocalHost();
- sm.regionServerStartup(ia3, 1236, -1, System.currentTimeMillis() - warningSkew * 2);
+ LOG.debug("regionServerStartup 5");
+ InetAddress ia5 = InetAddress.getLocalHost();
+ sm.regionServerStartup(ia5, 1238, -1, System.currentTimeMillis() + warningSkew * 2);
}