On Fri, 28 Feb 2025 14:48:43 GMT, Mark Sheppard <mshep...@openjdk.org> wrote:
>> serhiysachkov has updated the pull request incrementally with one additional >> commit since the last revision: >> >> 8281511: update Copyright header > > I think the checkTime from the base class Tests, should be reviewed in the > context of the reported failures, where some of the actual timeouts > registered are 10699 , 16926, 17926 > > The timeout check is > > /* check the time got is within 50% of the time expected */ > public static void checkTime (long got, long expected) { > checkTime(got, expected, expected); > } > > /* check the time got is between start and end, given 50% tolerance */ > public static void checkTime(long got, long start, long end) { > dprintln("checkTime: got = " + got + " start = " + start + " end = " > + end); > long upper = end + (end / 2); > long lower = start - (start / 2); > if (got > upper || got < lower) { > throw new RuntimeException("checkTime failed: got " + got > + ", expected between " + start + " and " + end); > } > } > > which uses arbitrary upper bounds and lower bounds. > > If a timeout is set at 5000 milliseconds then the expectation is that, should > the timeout expire and a SocketTimeoutException is thrown, then the actual > elapsed time will be equal to, or greater than, the specified timeout value > passed to setSoTimeout. The minimum timeout is 5000 milliseconds, that is the > lower bound for any timeout expiry check. Any earlier return would indicate a > spurious wakeup by the OS. > > In the checkTime a lower bound of less than the expected timeout is > tolerated, and then an upper bound of an additional 50% is utilised as a > check. Looking at the reported failures scenarios the actual elapsed time is > significantly greater than the (timeout + 50%) value. > > It is proffered that in reality no upper bound, other than > timeout value > should be imposed on the timeout check. I see my comment and @msheppar 's crossed each others. Whatever you decide to do here please fix the exception message to reflect the actual check that is being made. ------------- PR Comment: https://git.openjdk.org/jdk/pull/23840#issuecomment-2691159392