[ 
https://issues.apache.org/jira/browse/FLINK-6772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16029299#comment-16029299
 ] 

Tzu-Li (Gordon) Tai edited comment on FLINK-6772 at 5/30/17 11:53 AM:
----------------------------------------------------------------------

Hmm, I've did another check on this (using the code you posted), an had a very 
odd observation:

so, when the {{followedByAny}} state is called "end", then it outputs correctly 
to be {{[b-1, b-2, b-3]}},
but for example when you rename it to be "middle", or "m" (some random data 
points here), the result ordering is different.
I've only changed the second state's name, and nothing else.

Any clue what might be happening here? I know it sounds a bit bizzare :/
The tests are done with on fresh runs, not restored from checkpoint.


was (Author: tzulitai):
Hmm, I've did another check on this, an had a very odd observation:

so, when the {{followedByAny}} state is called "end", then it outputs correctly 
to be {{[b-1, b-2, b-3]}},
but for example when you rename it to be "middle", or "m" (some random data 
points here), the result ordering is different.

Any clue what might be happening here? I know it sounds a bit bizzare :/
The tests are done with on fresh runs, not restored from checkpoint.

> Incorrect ordering of matched state events in Flink CEP
> -------------------------------------------------------
>
>                 Key: FLINK-6772
>                 URL: https://issues.apache.org/jira/browse/FLINK-6772
>             Project: Flink
>          Issue Type: Bug
>          Components: CEP
>            Reporter: Tzu-Li (Gordon) Tai
>
> I've stumbled across an unexepected ordering of the matched state events. 
> Pattern:
> {code}
> Pattern<String, ?> pattern = Pattern
>     .<String>begin("start")
>         .where(new IterativeCondition<String>() {
>             @Override
>             public boolean filter(String s, Context<String> context) throws 
> Exception {
>                 return s.startsWith("a-");
>             }
>         }).times(4).allowCombinations()
>     .followedByAny("end")
>         .where(new IterativeCondition<String>() {
>             public boolean filter(String s, Context<String> context) throws 
> Exception {
>                 return s.startsWith("b-");
>             }
>     }).times(3).consecutive();
> {code}
> Input event sequence:
> a-1, a-2, a-3, a-4, b-1, b-2, b-3
> On b-3 a matched pattern would be triggered.
> Now, in the {{Map<String, List<IN>>}} map passed via {{select}} in 
> {{PatternSelectFunction}}, the list for the "end" state is:
> b-3, b-1, b-2.
> Based on the timestamp of the events (simply using processing time), the 
> correct order should be b-1, b-2, b-3.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to