Skip to content
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

All dynamic configs are sent out in a prejoin operation regardless of the cluster version #12151

Closed
mmedenjak opened this issue Jan 15, 2018 · 1 comment

Comments

@mmedenjak
Copy link
Contributor

@mmedenjak mmedenjak commented Jan 15, 2018

The PreJoinOperation is collected here:

@Override
public Operation getPreJoinOperation() {
if (version.isLessOrEqual(V3_8)) {
return null;
}
IdentifiedDataSerializable[] allConfigurations = collectAllDynamicConfigs();
if (noConfigurationExist(allConfigurations)) {
// there is no dynamic configuration -> no need to send an empty operation
return null;
}
return new DynamicConfigPreJoinOperation(allConfigurations, ConfigCheckMode.WARNING);
}

It will collect all of the configurations regardless of the hazelcast version they were introduced in. For instance, 3.10 introduces FlakeIdGeneratorConfig as well as PNCounterConfig. Sending these to 3.9 members during rolling upgrade could cause errors.

OTOH not sending the configs might mean that some members will not have all of the configurations when the cluster version is switched to 3.10.

@jerrinot
Copy link
Contributor

@jerrinot jerrinot commented Feb 27, 2018

we should not allow adding dynamic configs for 3.10 structures when running in the 3.9 mode.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

4 participants
You can’t perform that action at this time.