[
https://issues.apache.org/jira/browse/FLINK-17177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17086719#comment-17086719
]
Yang Wang commented on FLINK-17177:
-----------------------------------
[~felixzheng], thanks a lot. Let's try to figure out when the {{Error
WatchEvent}} will be sent from K8s ApiServer.
* If it happens in resource spec check(e.g. resource version too old, format
check failed), then current handle logics is right, remove the pod and create a
new one.
* If it happens because of some K8s internal error, creating a new watcher
could not solve this problem. Maybe we need to throw a fatal error and failed
the current jobmanager attempt.
* Some other case ...
Moreover, i am afraid that if there are some HTTP layer errors, the
{{WatchConnectionManager}} could handle it and retry internally, i.e. creating
a new {{WebSocket}}. Just like YARN, if there is some network problem, the IPC
client of {{AMRMClient}} will handle the retry logic.
> Handle ERROR event correctly in KubernetesResourceManager#onError
> -----------------------------------------------------------------
>
> Key: FLINK-17177
> URL: https://issues.apache.org/jira/browse/FLINK-17177
> Project: Flink
> Issue Type: Bug
> Components: Deployment / Kubernetes
> Affects Versions: 1.10.0, 1.10.1
> Reporter: Canbin Zheng
> Priority: Major
> Fix For: 1.11.0
>
>
> Currently, once we receive an *ERROR* event that is sent from the K8s API
> server via the K8s {{Watcher}}, then {{KubernetesResourceManager#onError}}
> will handle it by calling the
> {{KubernetesResourceManager#removePodIfTerminated}}. This may be incorrect
> since the *ERROR* event may indicate an exception in the HTTP layer, which
> means the previously created {{Watcher}} may be no longer available and we'd
> better re-create the {{Watcher}} immediately.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)