Arseniy Tashoyan created FLINK-26826:
----------------------------------------

             Summary: env.readFile() fails if auto-generated UIDs disabled
                 Key: FLINK-26826
                 URL: https://issues.apache.org/jira/browse/FLINK-26826
             Project: Flink
          Issue Type: Bug
    Affects Versions: 1.14.4, 1.12.7, 1.15.0
         Environment: Flink 1.12.4

OpenJDK 8
            Reporter: Arseniy Tashoyan


When the settings *pipeline.auto-generate-uids* is set to {*}false{*}, the 
following functions from  *StreamExecutionEnvironment* fail:
 * readFile()
 * readTextFile()
 * createInput()

These functions call the private function {*}createFileInput(){*}, which does 
the following:
{code:java}
SingleOutputStreamOperator<OUT> source =
    addSource(monitoringFunction, sourceName, null, boundedness)
        .transform("Split Reader: " + sourceName, typeInfo, factory);{code}
This code calls {*}addSource(){*}, but does not set UID for the added source 
operator. Since the automated UID generation disabled, we get a failure:
{code:java}
  java.lang.IllegalStateException: Auto generated UIDs have been disabled but 
no UID or hash has been assigned to operator Custom File Source
  at 
org.apache.flink.streaming.util.graph.StreamGraphUtils.validateTransformationUid(StreamGraphUtils.java:47)
  at 
org.apache.flink.streaming.api.graph.SimpleTransformationTranslator.configure(SimpleTransformationTranslator.java:108)
  at 
org.apache.flink.streaming.api.graph.SimpleTransformationTranslator.translateForStreaming(SimpleTransformationTranslator.java:62)
  at 
org.apache.flink.streaming.api.graph.StreamGraphGenerator.translate(StreamGraphGenerator.java:671)
  at 
org.apache.flink.streaming.api.graph.StreamGraphGenerator.transform(StreamGraphGenerator.java:403)
  at 
org.apache.flink.streaming.api.graph.StreamGraphGenerator.getParentInputIds(StreamGraphGenerator.java:692)
  at 
org.apache.flink.streaming.api.graph.StreamGraphGenerator.translate(StreamGraphGenerator.java:652)
  at 
org.apache.flink.streaming.api.graph.StreamGraphGenerator.transform(StreamGraphGenerator.java:403)
  at 
org.apache.flink.streaming.api.graph.StreamGraphGenerator.generate(StreamGraphGenerator.java:269)
  at 
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.getStreamGraph(StreamExecutionEnvironment.java:1958)
  at 
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.getStreamGraph(StreamExecutionEnvironment.java:1943)
  at 
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.executeAsync(StreamExecutionEnvironment.java:1874)
  at 
org.apache.flink.streaming.api.scala.StreamExecutionEnvironment.executeAsync(StreamExecutionEnvironment.scala:799)
{code}
A possible fix is to pass an additional argument sourceUid to the function 
{*}createFileInput(){*}, as well as to all public functions calling 
{*}createFileInput(){*}. Same for Scala API.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to