Details
-
Bug
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
2.5.0, 2.6.1, 2.8.0, 3.0.0-alpha1
-
None
-
None
-
Patch, Important
Description
The callBack Runnable may run after runOnNextHeartbeat but before wait(), if that happens, it will wait forever.
So I think the wait() must set timeout.
CommitterEventHandler#waitForValidCommitWindow
while (now - lastHeartbeatTime > commitWindowMs) {
rmHeartbeatHandler.runOnNextHeartbeat(new Runnable() {
@Override
public void run() {
synchronized (EventProcessor.this)
}
});
wait();
lastHeartbeatTime = rmHeartbeatHandler.getLastHeartbeatTime();
now = context.getClock().getTime();
}