[crac] RFR: Correct System.nanotime() value after restore
    Anton Kozlov 
    akozlov at openjdk.org
       
    Mon Mar 27 17:28:22 UTC 2023
    
    
  
On Thu, 23 Mar 2023 15:38:35 GMT, Radim Vansa <duke at openjdk.org> wrote:
> There are various places both inside JDK and in libraries that rely on monotonicity of `System.nanotime()`. When the process is restored on a different machine the value will likely differ as the implementation provides time since machine boot. This PR records wall clock time before checkpoint and after restore and tries to adjust the value provided by nanotime() to reasonably correct value.
src/hotspot/share/runtime/os.cpp line 2051:
> 2049:     diff_millis = 0;
> 2050:   }
> 2051:   javaTimeNanos_offset = checkpoint_nanos - javaTimeNanos() + diff_millis * 1000000L;
Will `uptime_since_restore` still report the correct time after the change?
https://github.com/openjdk/crac/blob/9ed961106a255145274de777e151577863b013ea/src/hotspot/os/linux/os_linux.cpp#L5697
-------------
PR Review Comment: https://git.openjdk.org/crac/pull/53#discussion_r1149577706
    
    
More information about the crac-dev
mailing list