Hi,

Excellent, thanks for pointing this out! The definition in Watermark.java, 
which is used by HeapInternalTimerService.java, WindowOperator.isWindowLate() 
and WindowOperator.isElementLate() and is also documented in [1] is the 
definitive (ha!) definition.

I created Jira issues for fixing these:
 - FLINK-7563 - Fix watermark semantics in CEP operators 
<https://issues.apache.org/jira/browse/FLINK-7563>
 - FLINK-7564 - Fix Watermark semantics in Table API 
<https://issues.apache.org/jira/browse/FLINK-7564>

Best,
Aljoscha

> On 30. Aug 2017, at 20:37, Eron Wright <[email protected]> wrote:
> 
> Hello,
> 
> I think I see a bug in a few places related to determining whether an input
> is to be considered late.  Some components use the logic that (timestamp <=
> watermark) is considered late.  Others use (timestamp < watermark).  I
> think the former is correct according to the definition in Watermark.java.
> 
> Compare:
> https://github.com/apache/flink/blob/df7452d9811b0aa88919d7e3c1f6c34b36ac9b38/flink-streaming-java/src/main/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperator.java#L574
> 
> https://github.com/apache/flink/blob/df7452d9811b0aa88919d7e3c1f6c34b36ac9b38/flink-libraries/flink-table/src/main/scala/org/apache/flink/table/runtime/aggregate/RowTimeUnboundedOver.scala#L116
> 
> https://github.com/apache/flink/blob/df7452d9811b0aa88919d7e3c1f6c34b36ac9b38/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/operator/AbstractKeyedCEPPatternOperator.java#L168
> 
> I might be misunderstanding the above snippets, it was a cursory look.
> 
> -Eron

Reply via email to