[
https://issues.apache.org/jira/browse/HBASE-5179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13184286#comment-13184286
]
stack commented on HBASE-5179:
------------------------------
I agree with the spirit of this class. Good stuff Chunhui.
This is awkward name for a method, getDeadServersUnderProcessing. Should it be
getDeadServers? Does it need to be a public method? Seems fine that it be
package private.
Is serversWithoutSplitLog a good name for a local variable? Should it be
deadServers with a comment saying that deadServers are processed by
servershutdownhandler and it will be taking care of the log splitting?
Is this right -- for trunk?
{code}
- } else if
(!serverManager.isServerOnline(regionLocation.getServerName())) {
+ } else if (!onlineServers.contains(regionLocation.getHostname())) {
Online servers is keyed by a ServerName, not a hostname.
What is a deadServersUnderProcessing? Does DeadServers keep list of all
servers that ever died? Is that a good idea? Shouldn't finish remove item
from deadservers rather than just from deadServersUnderProcessing
Change name of this method, cloneProcessingDeadServers. Just call it
getDeadServers? That its a clone is an internal implementation detail?
> Concurrent processing of processFaileOver and ServerShutdownHandler may
> cause region is assigned before completing split log, it would cause data loss
> -------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-5179
> URL: https://issues.apache.org/jira/browse/HBASE-5179
> Project: HBase
> Issue Type: Bug
> Components: master
> Affects Versions: 0.90.2
> Reporter: chunhui shen
> Assignee: chunhui shen
> Attachments: 5179-90.txt, 5179-v2.txt, hbase-5179.patch
>
>
> If master's processing its failover and ServerShutdownHandler's processing
> happen concurrently, it may appear following case.
> 1.master completed splitLogAfterStartup()
> 2.RegionserverA restarts, and ServerShutdownHandler is processing.
> 3.master starts to rebuildUserRegions, and RegionserverA is considered as
> dead server.
> 4.master starts to assign regions of RegionserverA because it is a dead
> server by step3.
> However, when doing step4(assigning region), ServerShutdownHandler may be
> doing split log, Therefore, it may cause data loss.
--
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