You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Weike Dong (Jira)" <ji...@apache.org> on 2022/08/23 11:39:00 UTC
[jira] [Commented] (FLINK-29084) Program argument containing # (pound sign) mistakenly truncated in Kubernetes mode
[ https://issues.apache.org/jira/browse/FLINK-29084?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17583530#comment-17583530 ]
Weike Dong commented on FLINK-29084:
------------------------------------
One possible solution is to base64-encode the program arguments and decode them later, but we may need to change _flink-clients_ module as well, like _org.apache.flink.client.deployment.application.ApplicationConfiguration#applyToConfiguration_ and {_}org.apache.flink.client.deployment.application.ApplicationConfiguration#fromConfiguration{_}.
Hi [~wangyang0918] do you have time to have a look at this issue? Thanks : )
> Program argument containing # (pound sign) mistakenly truncated in Kubernetes mode
> ----------------------------------------------------------------------------------
>
> Key: FLINK-29084
> URL: https://issues.apache.org/jira/browse/FLINK-29084
> Project: Flink
> Issue Type: Bug
> Components: Deployment / Kubernetes
> Affects Versions: 1.13.6, 1.14.5, 1.15.1
> Environment: Flink 1.13.6
> Native Kubernetes (Application Mode)
> Reporter: Weike Dong
> Priority: Minor
>
> We have found that when submitting jobs in native-Kubernetes mode, the main arguments of the Flink program would be truncated if it contains a # character.
> For example, if we pass 'ab#cd' as the argument for Flink programs, Flink actually gets only 'ab' from the variable `$internal.application.program-args` at runtime.
> After searching into the code, we found the reason might be that when `org.apache.flink.kubernetes.kubeclient.decorators.FlinkConfMountDecorator#buildAccompanyingKubernetesResources` transform Flink config data `Map` into `ConfigMap`, fabric8 Kubernetes client converts it to YAML internally, without any escaping procedures. Afterwards, when there is a # character in the YAML line, the decoder treats it as the start of a comment, thus the substring after the # character is ignored erroneously.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)