Details
-
Bug
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
2.2.9, 3.0.11, 3.10, 4.0-alpha1, 4.0
-
None
-
Low
Description
The introduction of StorageService.finishJoiningRing() on CASSANDRA-8523:
@@ -885,17 +896,14 @@ public class StorageService extends NotificationBroadcasterSupport implements IE { if (dataAvailable) { - // start participating in the ring. - SystemKeyspace.setBootstrapState(SystemKeyspace.BootstrapState.COMPLETED); - setTokens(bootstrapTokens); + finishJoiningRing(); + // remove the existing info about the replaced node. if (!current.isEmpty()) { for (InetAddress existing : current) Gossiper.instance.replacedEndpoint(existing); } - assert tokenMetadata.sortedTokens().size() > 0; - doAuthSetup(); } else { @@ -908,6 +916,11 @@ public class StorageService extends NotificationBroadcasterSupport implements IE else if (isSurveyMode) { - setTokens(SystemKeyspace.getSavedTokens()); - SystemKeyspace.setBootstrapState(SystemKeyspace.BootstrapState.COMPLETED); isSurveyMode = false; logger.info("Leaving write survey mode and joining ring at operator request"); - assert tokenMetadata.sortedTokens().size() > 0; - - doAuthSetup(); + finishJoiningRing(); } } + private void finishJoiningRing() + { + // start participating in the ring. + SystemKeyspace.setBootstrapState(SystemKeyspace.BootstrapState.COMPLETED); + setTokens(bootstrapTokens); + + assert tokenMetadata.sortedTokens().size() > 0; + doAuthSetup(); + } +
slightly changed the way tokens are set on StorageService.joinRing() when cassandra.write_survey=true from setTokens(SystemKeyspace.getSavedTokens())
to setTokens(bootstrapTokens).
Attachments
Issue Links
- is related to
-
CASSANDRA-8523 Writes should be sent to a replacement node which has a new IP while it is streaming in data
- Resolved