HBASE-21421 Do not kill RS if reportOnlineRegions fails

This commit is contained in:
Allan Yang 2018-11-06 14:58:35 +08:00
parent 82ce149601
commit a31458bdee
2 changed files with 10 additions and 5 deletions

View File

@ -1053,8 +1053,7 @@ public class AssignmentManager implements ServerListener {
}
}
void checkOnlineRegionsReport(final ServerStateNode serverNode, final Set<byte[]> regionNames)
throws YouAreDeadException {
void checkOnlineRegionsReport(final ServerStateNode serverNode, final Set<byte[]> regionNames) {
final ServerName serverName = serverNode.getServerName();
try {
for (byte[] regionName: regionNames) {
@ -1097,9 +1096,10 @@ public class AssignmentManager implements ServerListener {
}
}
} catch (IOException e) {
LOG.warn("Killing " + serverName + ": " + e.getMessage());
killRegionServer(serverNode);
throw (YouAreDeadException)new YouAreDeadException(e.getMessage()).initCause(e);
//See HBASE-21421, we can count on reportRegionStateTransition calls
//We only log a warming here. It could be a network lag.
LOG.warn("Failed to checkOnlineRegionsReport, maybe due to network lag, "
+ "if this message continues, be careful of double assign", e);
}
}

View File

@ -45,6 +45,7 @@ import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@ -137,7 +138,11 @@ public class TestRogueRSAssignment {
admin.setBalancerRunning(true, false);
}
/**
* Ignore this test, see HBASE-21421
*/
@Test
@Ignore
public void testReportRSWithWrongRegion() throws Exception {
final TableName tableName = TableName.valueOf(this.name.getMethodName());