[
https://issues.apache.org/jira/browse/FLINK-38145?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
yuanfenghu closed FLINK-38145.
------------------------------
Resolution: Cannot Reproduce
> Fix ReflectiveDiffBuilder config comparison to properly handle deleted
> configuration entries
> --------------------------------------------------------------------------------------------
>
> Key: FLINK-38145
> URL: https://issues.apache.org/jira/browse/FLINK-38145
> Project: Flink
> Issue Type: Improvement
> Components: Kubernetes Operator
> Affects Versions: kubernetes-operator-1.12.1
> Environment: flink kubernetes 1.10
> Reporter: yuanfenghu
> Priority: Critical
> Fix For: kubernetes-operator-1.13.0
>
>
> h2. Problem description
> When a configuration item in FlinkDeployment Spec is deleted (such as
> removing a configuration item from FlinkConfiguration), the deleted
> configuration still exists in the running Flink cluster after redeployment
> and has not been properly cleaned up.
> h2. The root cause of the problem
> lies in the configDiff method of ReflectiveDiffBuilder. java. When comparing
> old and new configurations, this method merges all the keys of the left (old
> configuration) and right (new configuration) maps into a key set for
> comparison:
>
> {code:java}
> //代码占位符
> Set<String> keys = new HashSet<>();
> keys.addAll(left.keySet());
> keys.addAll(right.keySet()); {code}
> This results in the fact that even if a configuration item is removed in the
> new configuration, it will still be included in the diff comparison and thus
> not correctly recognized as a configuration that needs to be cleaned up.
>
> h2. Scope of influence
> -All Map type fields annotated with @ SpecDiff. Config
> - primarily affecting FlinkDeployment Spec's FlinnConfiguration field
> - may result in configuration drift and inconsistent cluster states
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)