[ https://issues.apache.org/jira/browse/FLINK-21564?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17295033#comment-17295033 ]
Nicholas Jiang edited comment on FLINK-21564 at 3/4/21, 6:46 AM: ----------------------------------------------------------------- [~kezhuw], according to the logic of the codes you provide, you just simplify the check logic for whether has time left, right? And this simplify makes sense to me. cc [~chesnay] was (Author: nicholasjiang): [~kezhuw], according to the logic of the codes you provide, you just simplify the check logic for whether has time left, right? And this simplify makes sense to me. > CommonTestUtils.waitUntilCondition could fail with condition meets before > ------------------------------------------------------------------------- > > Key: FLINK-21564 > URL: https://issues.apache.org/jira/browse/FLINK-21564 > Project: Flink > Issue Type: Bug > Components: Tests > Reporter: Kezhu Wang > Priority: Minor > > {code} > public static void waitUntilCondition( > SupplierWithException<Boolean, Exception> condition, > Deadline timeout, > long retryIntervalMillis, > String errorMsg) > throws Exception { > while (timeout.hasTimeLeft() && !condition.get()) { > final long timeLeft = Math.max(0, timeout.timeLeft().toMillis()); > Thread.sleep(Math.min(retryIntervalMillis, timeLeft)); > } > if (!timeout.hasTimeLeft()) { > throw new TimeoutException(errorMsg); > } > } > {code} > The timeout could run off between truth condition and last checking. > Besides this, I also see time-out blocking condition in some tests, the > combination could be worse. > Not a big issue, but worth to be aware of and solved. -- This message was sent by Atlassian Jira (v8.3.4#803005)