-
Notifications
You must be signed in to change notification settings - Fork 24.9k
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
Script settings validation breaks mixed version cluster (7.15 + 7.16) #81486
Comments
Pinging @elastic/es-core-infra (Team:Core/Infra) |
To resolve this, we'll change the interpretation of Users who do not set the We will reject setting cc: @colings86. |
The script context cache is deprecated. In 7.16 the default value of `script.max_compilation_rate` was switched from `"use-context"`, to `"150/5m". That means uses would have to explicitly set "use-context" to use any of the context cache families of settings: `script.context.*.max_compilations_rate` `script.context.*.cache_max_size` `script.context.*.cache_expire` On upgrades to 7.16, if the customer was using the default and had set any of those settings without setting `script.max_compilation_rate: "use-context"`, the upgrade would be rejected. To avoid an unintentional breaking change, the script service will now **implicitly** use the script context cache if `script.max_compilation_rate` is **unset** and any of the context cache family of settings is set. The context cache will also be used if `script.max_compilation_rate: "use-context"`, as before. Fixes: elastic#81486
The script context cache is deprecated. In 7.16 the default value of `script.max_compilation_rate` was switched from `"use-context"`, to `"150/5m"`. That means uses would have to explicitly set `"use-context"` to use any of the context cache families of settings: `script.context.*.max_compilations_rate` `script.context.*.cache_max_size` `script.context.*.cache_expire` On upgrades to 7.16, if the customer was using the default and had set any of those settings without setting `script.max_compilation_rate: "use-context"`, the upgrade would be fail. To avoid an unintentional breaking change, the script service will now **implicitly** use the script context cache if `script.max_compilation_rate` is **unset** and any of the context cache family of settings is set. The context cache will also be used if `script.max_compilation_rate: "use-context"`, as before. Fixes: #81486
The script context cache is deprecated. In 7.16 the default value of `script.max_compilation_rate` was switched from `"use-context"`, to `"150/5m"`. That means uses would have to explicitly set `"use-context"` to use any of the context cache families of settings: `script.context.*.max_compilations_rate` `script.context.*.cache_max_size` `script.context.*.cache_expire` On upgrades to 7.16, if the customer was using the default and had set any of those settings without setting `script.max_compilation_rate: "use-context"`, the upgrade would be fail. To avoid an unintentional breaking change, the script service will now **implicitly** use the script context cache if `script.max_compilation_rate` is **unset** and any of the context cache family of settings is set. The context cache will also be used if `script.max_compilation_rate: "use-context"`, as before. Fixes: elastic#81486
The script context cache is deprecated. In 7.16 the default value of `script.max_compilation_rate` was switched from `"use-context"`, to `"150/5m". That means uses would have to explicitly set "use-context" to use any of the context cache families of settings: `script.context.*.max_compilations_rate` `script.context.*.cache_max_size` `script.context.*.cache_expire` On upgrades to 7.16, if the customer was using the default and had set any of those settings without setting `script.max_compilation_rate: "use-context"`, the upgrade would be rejected. To avoid an unintentional breaking change, the script service will now **implicitly** use the script context cache if `script.max_compilation_rate` is **unset** and any of the context cache family of settings is set. The context cache will also be used if `script.max_compilation_rate: "use-context"`, as before. Fixes: elastic#81486 Backport: ba6c17d
The script context cache is deprecated. In 7.16 the default value of `script.max_compilation_rate` was switched from `"use-context"`, to `"150/5m"`. That means uses would have to explicitly set `"use-context"` to use any of the context cache families of settings: `script.context.*.max_compilations_rate` `script.context.*.cache_max_size` `script.context.*.cache_expire` On upgrades to 7.16, if the customer was using the default and had set any of those settings without setting `script.max_compilation_rate: "use-context"`, the upgrade would be fail. To avoid an unintentional breaking change, the script service will now **implicitly** use the script context cache if `script.max_compilation_rate` is **unset** and any of the context cache family of settings is set. The context cache will also be used if `script.max_compilation_rate: "use-context"`, as before. Fixes: #81486 Backport: ba6c17d
I'm leaving this open until the fix is fully backported. |
* [7.16] Script: Implicit context cache (#81552) The script context cache is deprecated. In 7.16 the default value of `script.max_compilation_rate` was switched from `"use-context"`, to `"150/5m". That means uses would have to explicitly set "use-context" to use any of the context cache families of settings: `script.context.*.max_compilations_rate` `script.context.*.cache_max_size` `script.context.*.cache_expire` On upgrades to 7.16, if the customer was using the default and had set any of those settings without setting `script.max_compilation_rate: "use-context"`, the upgrade would be rejected. To avoid an unintentional breaking change, the script service will now **implicitly** use the script context cache if `script.max_compilation_rate` is **unset** and any of the context cache family of settings is set. The context cache will also be used if `script.max_compilation_rate: "use-context"`, as before. Fixes: #81486 Backport: ba6c17d
Backport complete. |
In #79508 the default value for
script.max_compilations_rate
was changed from"use-context"
to"150/5m"
.That means, that
validateCacheSetting
now treatsuseContext
as false, and rejects any cluster settings on a context.https://github.com/elastic/elasticsearch/blob/v7.16.0/server/src/main/java/org/elasticsearch/script/ScriptService.java#L349-L360
When in a mixed version cluster, the 7.15 node will accept cluster settings such as
But the 7.16 version will reject them, and will fail to apply the cluster state on the local node.
Consequently, rolling upgrades with context settings will fail unless
script.max_compilations_rate
is explicitly set touse-context
on the 7.15 node.The text was updated successfully, but these errors were encountered: