-
Notifications
You must be signed in to change notification settings - Fork 3.4k
HBASE-24675: On Master restart all servers are assigned to default rs… #2053
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -591,7 +591,7 @@ private synchronized void refresh(boolean forceOnline) throws IOException { | |
|
|
||
| // This is added to the last of the list so it overwrites the 'default' rsgroup loaded | ||
| // from region group table or zk | ||
| groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers())); | ||
| groupList.add(new RSGroupInfo(RSGroupInfo.DEFAULT_GROUP, getDefaultServers(groupList))); | ||
|
|
||
| // populate the data | ||
| HashMap<String, RSGroupInfo> newGroupMap = Maps.newHashMap(); | ||
|
|
@@ -726,9 +726,14 @@ private void updateCacheOfRSGroups(final Set<String> currentGroups) { | |
|
|
||
| // Called by ServerEventsListenerThread. Presume it has lock on this manager when it runs. | ||
| private SortedSet<Address> getDefaultServers() { | ||
| return getDefaultServers(listRSGroups()/* get from rsGroupMap */); | ||
| } | ||
|
|
||
| // Called by ServerEventsListenerThread. Presume it has lock on this manager when it runs. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also pls leave this comment. The ServerEventsListenerThread calls the above method only.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. right, comment is not relevant on getDefaultServers(List rsGroupInfoList) method. |
||
| private SortedSet<Address> getDefaultServers(List<RSGroupInfo> rsGroupInfoList) { | ||
| // Build a list of servers in other groups than default group, from rsGroupMap | ||
| Set<Address> serversInOtherGroup = new HashSet<>(); | ||
| for (RSGroupInfo group : listRSGroups() /* get from rsGroupMap */) { | ||
| for (RSGroupInfo group : rsGroupInfoList) { | ||
| if (!RSGroupInfo.DEFAULT_GROUP.equals(group.getName())) { // not default group | ||
| serversInOtherGroup.addAll(group.getServers()); | ||
| } | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
refresh fetching info from rsgroup table / ZK makes sense.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So the issue is by this time, the in memory state 'holder' not created in the HM restart case. This is a very bad bug.. This should go into all active branches no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
branch-1 fix was pending, raised PR #2102