[ https://issues.apache.org/jira/browse/FLINK-37337?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shengkai Fang reassigned FLINK-37337: ------------------------------------- Assignee: Shengkai Fang > Deploy script SQL Client in Embedded Mode to Kubernetes Results in > FileNotFoundException > ---------------------------------------------------------------------------------------- > > Key: FLINK-37337 > URL: https://issues.apache.org/jira/browse/FLINK-37337 > Project: Flink > Issue Type: Bug > Components: Table SQL / Client > Reporter: Feng Jin > Assignee: Shengkai Fang > Priority: Major > Labels: pull-request-available > > During testing of Flink in Kubernetes Application mode, an issue was > encountered when submitting SQL scripts using the {*}SQL Client Embedded > Mode{*}. > The SQL Client JAR is included in the {{--jar}} parameter by default. This > parameter is converted to {{user.artifacts.artifact-list . And we will get > the following exception. }}{{}} > {code:java} > Caused by: java.lang.RuntimeException: java.io.FileNotFoundException: > /home/feng/flink-cluster/image-build/flink/opt/flink-sql-client-2.0-SNAPSHOT.jar > (No such file or directory) │ > │ at > org.apache.flink.util.ExceptionUtils.rethrow(ExceptionUtils.java:321) > ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] > │ > │ at > org.apache.flink.util.function.FunctionUtils.lambda$uncheckedFunction$2(FunctionUtils.java:75) > ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] > │ > │ at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown > Source) ~[?:?] > │ > │ at > java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown > Source) ~[?:?] > │ > │ at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) > ~[?:?] > │ > │ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown > Source) ~[?:?] > │ > │ at > java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown > Source) ~[?:?] > │ > │ at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) > ~[?:?] > │ > │ at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source) > ~[?:?] > │ > │ at > org.apache.flink.client.program.artifact.ArtifactFetchManager.fetchArtifacts(ArtifactFetchManager.java:126) > ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] > │ > │ at > org.apache.flink.kubernetes.entrypoint.KubernetesApplicationClusterEntrypoint.fetchArtifacts(KubernetesApplicationClusterEntrypoint.java:159) > ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] │ > │ ... 8 more > > │ > │ Caused by: java.io.FileNotFoundException: > /home/feng/flink-cluster/image-build/flink/opt/flink-sql-client-2.0-SNAPSHOT.jar > (No such file or directory) > │ > │ at java.base/java.io.FileInputStream.open0(Native Method) ~[?:?] > > │ > │ at java.base/java.io.FileInputStream.open(Unknown Source) ~[?:?] > > │ > │ at java.base/java.io.FileInputStream.<init>(Unknown Source) ~[?:?] > > │ > │ at > org.apache.flink.core.fs.local.LocalDataInputStream.<init>(LocalDataInputStream.java:52) > ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] > │ > │ at > org.apache.flink.core.fs.local.LocalFileSystem.open(LocalFileSystem.java:133) > ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] > │ > │ at > org.apache.flink.client.program.artifact.FsArtifactFetcher.fetch(FsArtifactFetcher.java:45) > ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] > │ > │ at > org.apache.flink.client.program.artifact.ArtifactFetchManager.fetchArtifact(ArtifactFetchManager.java:152) > ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] > │ > │ at > org.apache.flink.util.function.FunctionUtils.lambda$uncheckedFunction$2(FunctionUtils.java:73) > ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] > │ > │ at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown > Source) ~[?:?] > │ > │ at > java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown > Source) ~[?:?] > │ > │ at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) > ~[?:?] > │ > │ at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown > Source) ~[?:?] > │ > │ at > java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown > Source) ~[?:?] > │ > │ at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) > ~[?:?] > │ > │ at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source) > ~[?:?] > │ > │ at > org.apache.flink.client.program.artifact.ArtifactFetchManager.fetchArtifacts(ArtifactFetchManager.java:126) > ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] > │ > │ at > org.apache.flink.kubernetes.entrypoint.KubernetesApplicationClusterEntrypoint.fetchArtifacts(KubernetesApplicationClusterEntrypoint.java:159) > ~[flink-dist-2.0-SNAPSHOT.jar:2.0-SNAPSHOT] │ > │ ... 8 more{code} > In sql-client.sh, there is a logic that uses --jar to include the sql-client > JAR if it is not in the classpath. > {code:java} > # check if SQL client is already in classpath and must not be shipped manually > if [[ "$CC_CLASSPATH" =~ .*flink-sql-client.*.jar ]]; then # start client > without jar > exec "$JAVA_RUN" $FLINK_ENV_JAVA_OPTS $JVM_ARGS "${log_setting[@]}" > -classpath "`manglePathList "$CC_CLASSPATH:$INTERNAL_HADOOP_CLASSPATHS"`" > org.apache.flink.table.client.SqlClient "$@"# check if SQL client jar is in > /opt > elif [ -n "$FLINK_SQL_CLIENT_JAR" ]; then # start client with jar > exec "$JAVA_RUN" $FLINK_ENV_JAVA_OPTS $JVM_ARGS "${log_setting[@]}" > -classpath "`manglePathList > "$CC_CLASSPATH:$FLINK_SQL_CLIENT_JAR:$INTERNAL_HADOOP_CLASSPATHS"`" > org.apache.flink.table.client.SqlClient "$@" --jar "`manglePath > $FLINK_SQL_CLIENT_JAR`"{code} -- This message was sent by Atlassian Jira (v8.20.10#820010)