[ https://issues.apache.org/jira/browse/HBASE-9902?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kashif J S updated HBASE-9902: ------------------------------ Fix Version/s: (was: 0.96.0) 0.96.1 > 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 > -------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: HBASE-9902 > URL: https://issues.apache.org/jira/browse/HBASE-9902 > Project: HBase > Issue Type: Bug > Components: master > Affects Versions: 0.94.11 > Reporter: Kashif J S > Fix For: 0.98.0, 0.96.1 > > Attachments: HBASE-9902.patch > > > When Region server's time is ahead of Master's time and the difference is > more than hbase.master.maxclockskew value, region server startup is not > failing with ClockOutOfSyncException. > This causes some abnormal behavior as detected by our Tests. > ServerManager.java#checkClockSkew > long skew = System.currentTimeMillis() - serverCurrentTime; > if (skew > maxSkew) { > String message = "Server " + serverName + " has been " + > "rejected; Reported time is too far out of sync with master. " + > "Time difference of " + skew + "ms > max allowed of " + maxSkew + > "ms"; > LOG.warn(message); > throw new ClockOutOfSyncException(message); > } > Above line results in negative value when Master's time is lesser than > region server time and " if (skew > maxSkew) " check fails to find the skew > in this case. > Please Note: This was tested in hbase 0.94.11 version and the trunk also > currently has the same logic. > The fix for the same would be to make the skew positive value first as below: > long skew = System.currentTimeMillis() - serverCurrentTime; > skew = (skew < 0 ? -skew : skew); > if (skew > maxSkew) {..... -- This message was sent by Atlassian JIRA (v6.1#6144)