[
https://issues.apache.org/jira/browse/HBASE-6272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13401566#comment-13401566
]
Jimmy Xiang commented on HBASE-6272:
------------------------------------
One of the example is:
{code}
void regionOnline(HRegionInfo regionInfo, ServerName sn) {
// no lock concurrency ok.
this.regionsInTransition.remove(regionInfo.getEncodedName());
synchronized (this.regions) {
// Add check
ServerName oldSn = this.regions.get(regionInfo);
if (oldSn != null) LOG.warn("Overwriting " + regionInfo.getEncodedName() +
" on " + oldSn + " with " + sn);
if (isServerOnline(sn)) {
this.regions.put(regionInfo, sn);
addToServers(sn, regionInfo);
this.regions.notifyAll();
} else {
LOG.info("The server is not in online servers, ServerName=" +
sn.getServerName() + ", region=" + regionInfo.getEncodedName());
}
}
{code}
If the server is not online any more, it is not in transition, nor online.
> In-memory region state is inconsistent
> --------------------------------------
>
> Key: HBASE-6272
> URL: https://issues.apache.org/jira/browse/HBASE-6272
> Project: HBase
> Issue Type: Bug
> Reporter: Jimmy Xiang
> Assignee: Jimmy Xiang
>
> AssignmentManger stores region state related information in several places:
> regionsInTransition, regions (region info to server name map), and servers
> (server name to region info set map). However the access to these places is
> not coordinated properly. It leads to inconsistent in-memory region state
> information. Sometimes, some region could even be offline, and not in
> transition.
--
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