Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-12044

Flink CEP discards events as late if they have timestamps <= 0

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Reopened
    • Not a Priority
    • Resolution: Unresolved
    • 1.7.2
    • None
    • Library / CEP
    • None

    Description

      Let's make an input stream like this:

      env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)
      val events = env.fromElements(
            Event(timestamp = 0L, siteId),
            Event(timestamp = 500L, siteId)
      )
      .assignTimestampsAndWatermarks(new BoundedOutOfOrdernessTimestampExtractor{...})
      

      For this stream the event with timestamp = 0L will be treated as late. The reason is AbstractKeyedCEPPatternOperator that initializes lastWatermark with the default value provided by the compiler: zero. Would it be more correct to initialize lastWatermark with Long.MIN_VALUE?

      Of course, this is not a blocking defect, but I had really hard times to find why my unit test disregards the first event. Strictly speaking, this behavior seems incorrect.

      Attachments

        Activity

          People

            Unassigned Unassigned
            tashoyan Arseniy Tashoyan
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: