-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
HBASE-22940 Fix snapshot NoNode error #715
Conversation
🎊 +1 overall
This message was automatically generated. |
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.
Are you sure the error is not due a znode expiration or watcher missing expiration? I'm not sure adding extra RSes as members would sort it, the isSnaphsotDone would be called for members only, right? Can we also have tests that reproduce the condition and assert the proposed fix?
// start the snapshot on the RS | ||
Procedure proc = coordinator.startProcedure(this.monitor, this.snapshot.getName(), | ||
this.snapshot.toByteArray(), Lists.newArrayList(regionServers)); | ||
this.snapshot.toByteArray(), master.getServerManager().getOnlineServersList() | ||
.stream().map(ServerName::toString).collect(Collectors.toList())); |
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.
Do we really want to specify RSes potentially not having anything to do with the snapshot as an acquiring member?
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.
The problem is that all the RSes will add themselves to zk as acquired/reached, but Procedure only set those where the table regions on as barriers. So if all barriers reached, snapshot root node will be deleted, but the none barrier RSes may write on it and throw exception.
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.
the isSnaphsotDone would be called for members only, right?
I don't think so. It's just get the Procedure status.
You can see more details in the issue report.
Should this go in @wchevreuil ? |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
See comment above @wchevreuil |
No description provided.