You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "huxihx (JIRA)" <ji...@apache.org> on 2018/04/01 10:54:00 UTC
[jira] [Created] (KAFKA-6731) waitOnState waits for the wrong state
instead of the target one
huxihx created KAFKA-6731:
-----------------------------
Summary: waitOnState waits for the wrong state instead of the target one
Key: KAFKA-6731
URL: https://issues.apache.org/jira/browse/KAFKA-6731
Project: Kafka
Issue Type: Bug
Components: streams
Reporter: huxihx
In KafkaStreams.waitOnState, the code will waits the state to be set to NOT_RUNNING instead of the given target state. Is it deliberately as designed?
{code:java}
// ......
while (state != State.NOT_RUNNING) {
if (waitMs == 0) {
try {
stateLock.wait();
} catch (final InterruptedException e) {
// it is ok: just move on to the next iteration
}
} else if (waitMs > elapsedMs) {
long remainingMs = waitMs - elapsedMs;
try {
stateLock.wait(remainingMs);
} catch (final InterruptedException e) {
// it is ok: just move on to the next iteration
}
} else {
log.debug("Cannot transit to {} within {}ms", targetState, waitMs);
return false;
}
elapsedMs = time.milliseconds() - begin;
}
return true;
{code}
IMO, it should check the state to be the target one.
[~guozhang] Does is make sense?
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)