[
https://issues.apache.org/jira/browse/FLINK-6116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16008234#comment-16008234
]
Aljoscha Krettek commented on FLINK-6116:
-----------------------------------------
Unfortunately, I don't see an easy solution for this. We would have to make
{{StreamEdges}} unique by introducing ids but I'm afraid that other parts of
the code might be relying on the fact that they can just construct a
{{StreamEdge}} on the fly to do some lookup. (In general these parts of the
code are in heavy need of a rewrite/refactoring after we're done with the 1.3
release).
I think we have to leave this unresolved for 1.3. What do you think?
> Watermarks don't work when unioning with same DataStream
> --------------------------------------------------------
>
> Key: FLINK-6116
> URL: https://issues.apache.org/jira/browse/FLINK-6116
> Project: Flink
> Issue Type: Bug
> Components: DataStream API
> Affects Versions: 1.2.0, 1.3.0
> Reporter: Aljoscha Krettek
> Priority: Blocker
> Fix For: 1.3.0
>
>
> In this example job we don't get any watermarks in the {{WatermarkObserver}}:
> {code}
> public class WatermarkTest {
> public static void main(String[] args) throws Exception {
> final StreamExecutionEnvironment env =
> StreamExecutionEnvironment.getExecutionEnvironment();
>
> env.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime);
> env.getConfig().setAutoWatermarkInterval(1000);
> env.setParallelism(1);
> DataStreamSource<String> input = env.addSource(new
> SourceFunction<String>() {
> @Override
> public void run(SourceContext<String> ctx) throws
> Exception {
> while (true) {
> ctx.collect("hello!");
> Thread.sleep(800);
> }
> }
> @Override
> public void cancel() {
> }
> });
> input.union(input)
> .flatMap(new IdentityFlatMap())
> .transform("WatermarkOp",
> BasicTypeInfo.STRING_TYPE_INFO, new WatermarkObserver());
> env.execute();
> }
> public static class WatermarkObserver
> extends AbstractStreamOperator<String>
> implements OneInputStreamOperator<String, String> {
> @Override
> public void processElement(StreamRecord<String> element) throws
> Exception {
> System.out.println("GOT ELEMENT: " + element);
> }
> @Override
> public void processWatermark(Watermark mark) throws Exception {
> super.processWatermark(mark);
> System.out.println("GOT WATERMARK: " + mark);
> }
> }
> private static class IdentityFlatMap
> extends RichFlatMapFunction<String, String> {
> @Override
> public void flatMap(String value, Collector<String> out) throws
> Exception {
> out.collect(value);
> }
> }
> }
> {code}
> When commenting out the `union` it works.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)