You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by Vishal Santoshi <vi...@gmail.com> on 2018/01/14 17:27:29 UTC
When is the scheduled release for 1.4.1 ? We have been waiting for a
fix https://issues.apache.org/jira/browse/FLINK-8226 which looks a potential fix
This issues has a possible fix in 1.4.1.
We have been waiting for a fix
https://issues.apache.org/jira/browse/FLINK-8226 which looks a potential fix
A simple CEP loop pattern
private Pattern<Tuple2<Integer, SimpleBinaryEvent>, ?> alertPattern =
Pattern.<Tuple2<Integer,
SimpleBinaryEvent>>begin("start").where(checkStatusOn)
.followedBy("middle").where(checkStatusOn).times(2)
.next("end").where(checkStatusOn).within(Time.minutes(5))
I see failures.
SimpleBinaryEvent is
public class SimpleBinaryEvent implements Serializable {
private int id;
private int sequence;
private boolean status;
private long time;
public SimpleBinaryEvent(int id, int sequence, boolean status , long time) {
this.id = id;
this.sequence = sequence;
this.status = status;
this.time = time;
}
public int getId() {
return id;
}
public int getSequence() {
return sequence;
}
public boolean isStatus() {
return status;
}
public long getTime() {
return time;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SimpleBinaryEvent that = (SimpleBinaryEvent) o;
if (getId() != that.getId()) return false;
if (isStatus() != that.isStatus()) return false;
if (getSequence() != that.getSequence()) return false;
return getTime() == that.getTime();
}
@Override
public int hashCode() {
//return Objects.hash(getId(),isStatus(), getSequence(),getTime());
int result = getId();
result = 31 * result + (isStatus() ? 1 : 0);
result = 31 * result + getSequence();
result = 31 * result + (int) (getTime() ^ (getTime() >>> 32));
return result;
}
@Override
public String toString() {
return "SimpleBinaryEvent{" +
"id='" + id + '\'' +
", status=" + status +
", sequence=" + sequence +
", time=" + time +
'}';
}
}
failure cause:
Caused by: java.lang.Exception: Could not materialize checkpoint 2 for
operator KeyedCEPPatternOperator -> Map (1/1).
... 6 more
Caused by: java.util.concurrent.ExecutionException:
java.lang.IllegalStateException: Could not find id for entry:
SharedBufferEntry(ValueTimeWrapper((1,SimpleBinaryEvent{id='1',
status=true, sequence=95, time=1505503380000}), 1505503380000, 0),....
I am sure I have the equals() and hashCode() implemented the way it should
be. I have tried the Objects.hashCode too. In other instances I have had
CircularReference ( and thus stackOverflow ) on SharedBuffer.toString(),
which again points to issues with references ( equality and what not ).
Without checkpointing turned on it works as expected. I am running on a
local cluster. Is CEP production ready ?
I am using 1.3.2 Flink
Re: When is the scheduled release for 1.4.1 ? We have been
waiting for a fix https://issues.apache.org/jira/browse/FLINK-8226
which looks a potential fix
Posted by "Tzu-Li (Gordon) Tai" <tz...@apache.org>.
Hi Vishal,
Thanks for reporting this.
There is no scheduled release for 1.4.1 yet, but I’ve just started a thread to track the remaining issues, so hopefully soon.
Could you quickly reply on that thread [1] also so we can more easily keep track of this?
Cheers,
Gordon
[1] http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Releasing-Flink-1-4-1-td20731.html
On 15 January 2018 at 6:49:33 PM, Vishal Santoshi (vishal.santoshi@gmail.com) wrote:
This issues has a possible fix in 1.4.1.
We have been waiting for a fix
https://issues.apache.org/jira/browse/FLINK-8226 which looks a potential fix
A simple CEP loop pattern
private Pattern<Tuple2<Integer, SimpleBinaryEvent>, ?> alertPattern =
Pattern.<Tuple2<Integer,
SimpleBinaryEvent>>begin("start").where(checkStatusOn)
.followedBy("middle").where(checkStatusOn).times(2)
.next("end").where(checkStatusOn).within(Time.minutes(5))
I see failures.
SimpleBinaryEvent is
public class SimpleBinaryEvent implements Serializable {
private int id;
private int sequence;
private boolean status;
private long time;
public SimpleBinaryEvent(int id, int sequence, boolean status , long time) {
this.id = id;
this.sequence = sequence;
this.status = status;
this.time = time;
}
public int getId() {
return id;
}
public int getSequence() {
return sequence;
}
public boolean isStatus() {
return status;
}
public long getTime() {
return time;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SimpleBinaryEvent that = (SimpleBinaryEvent) o;
if (getId() != that.getId()) return false;
if (isStatus() != that.isStatus()) return false;
if (getSequence() != that.getSequence()) return false;
return getTime() == that.getTime();
}
@Override
public int hashCode() {
//return Objects.hash(getId(),isStatus(), getSequence(),getTime());
int result = getId();
result = 31 * result + (isStatus() ? 1 : 0);
result = 31 * result + getSequence();
result = 31 * result + (int) (getTime() ^ (getTime() >>> 32));
return result;
}
@Override
public String toString() {
return "SimpleBinaryEvent{" +
"id='" + id + '\'' +
", status=" + status +
", sequence=" + sequence +
", time=" + time +
'}';
}
}
failure cause:
Caused by: java.lang.Exception: Could not materialize checkpoint 2 for
operator KeyedCEPPatternOperator -> Map (1/1).
... 6 more
Caused by: java.util.concurrent.ExecutionException:
java.lang.IllegalStateException: Could not find id for entry:
SharedBufferEntry(ValueTimeWrapper((1,SimpleBinaryEvent{id='1',
status=true, sequence=95, time=1505503380000}), 1505503380000, 0),....
I am sure I have the equals() and hashCode() implemented the way it should
be. I have tried the Objects.hashCode too. In other instances I have had
CircularReference ( and thus stackOverflow ) on SharedBuffer.toString(),
which again points to issues with references ( equality and what not ).
Without checkpointing turned on it works as expected. I am running on a
local cluster. Is CEP production ready ?
I am using 1.3.2 Flink