RFR: 8357539: TimeSource.now() is not monotonic [v3]

Jaikiran Pai jpai at openjdk.org
Fri May 23 06:14:37 UTC 2025


On Fri, 23 May 2025 06:11:47 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:

>> We observed a case where the instants returned by `TimeSource.now()` were returned in non-monotonic order. The reason was that sometimes we were using a delay calculated with one `localSource` as an input to a different (updated on another thread) `localSource`. This was confirmed by putting `assert firstNanos + delay == nanos;` under `instant(long, long)`.
>> 
>> The fix ensures that we won't accidentally use the incorrect delay by removing the `instant(long, long)` overload, and calculating the delay in the method where it is used.
>> 
>> No new test; instrumenting this class for testing would likely double its size. Tier2 tests continue to pass.
>
> Daniel Jeliński has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Move localSource comment

Looks good to me.

-------------

Marked as reviewed by jpai (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/25390#pullrequestreview-2863305218


More information about the net-dev mailing list