Hi guys,

We tried building a simple pattern with the CEP library that matches 2
events with 2 filter conditions (where) but we get a strange error that
comes from the stream operator:

Pattern<Either<View, Click>, ?> viewAndClick = Pattern
                .<Either<View,, Click>> begin("view")
                .where(Either::isLeft)
                .followedBy("click").where(Either::isRight)
                .within(Time.hours(8));

CEP.pattern(stream, pattern).select(...);

We get the following exception when running this:
java.lang.RuntimeException: Failure happened in filter function.
at org.apache.flink.cep.nfa.NFA.computeNextStates(NFA.java:318)
at org.apache.flink.cep.nfa.NFA.process(NFA.java:162)
at
org.apache.flink.cep.operator.KeyedCEPPatternOperator.processEvent(KeyedCEPPatternOperator.java:48)
at
org.apache.flink.cep.operator.AbstractCEPBasePatternOperator.processElement(AbstractCEPBasePatternOperator.java:72)
at
org.apache.flink.cep.operator.AbstractKeyedCEPPatternOperator.processElement(AbstractKeyedCEPPatternOperator.java:161)
at
org.apache.flink.streaming.runtime.io.StreamInputProcessor.processInput(StreamInputProcessor.java:176)
at
org.apache.flink.streaming.runtime.tasks.OneInputStreamTask.run(OneInputStreamTask.java:66)
at
org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:266)
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:584)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Could not find previous shared
buffer entry with key: State(view, Normal, [
StateTransition(TAKE, click, with filter),
StateTransition(IGNORE, view),
]), value: Left(View[...]) and timestamp: 1473258371116. This can indicate
that the element belonging to the previous relation has been already
pruned, even though you expect it to be still there.
at org.apache.flink.cep.nfa.SharedBuffer.put(SharedBuffer.java:104)
at org.apache.flink.cep.nfa.NFA.computeNextStates(NFA.java:295)
... 9 more

Any ideas on what's going on here?

Thanks,
Gyula

Reply via email to