Many of our flaky tests are flaky because they use AvailablePort or
AvailablePortHelper to find randomly available ports. They then later fail
with a BindException because the port is already in use by the time the
test uses it.

Here's a proposal for a temporary fix:

The module geode-junit contains a JUnit 4 rule called RetryRule. We could
modify RetryRule to only retry if a BindException (or configurable
exception/s) is detected. This rule would then be dropped into every test
that uses AvailablePort or AvailablePortHelper. Then if the test fails with
a BindException, it would automatically retry (once or twice or whatever we
decide to configure RetryRule with). If the test fails without any detected
BindException, then it would just fail without retrying.

Opinions on this?

Thanks,
Kirk

Reply via email to