-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
ALL
-
Execution Team 2022-07-25, Execution Team 2022-08-08
-
38
PosixTimer relies on clock_gettime with CLOCK_THREAD_CPUTIME_ID to compute elapsed time. This is unreliable when the CPU on which the thread is executed changes, as the timer for that CPU will be different. This is fixed in glibc >= 2.4 running on kernel versions >= 2.6.12, but some evergreen instances still use older glibc versions.
The CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID clocks are realized on many platforms using timers from the CPUs (TSC on i386, AR.ITC on Itanium). These registers may differ between CPUs and as a consequence these clocks may return bogus results if a process is migrated to another CPU.
We might try detecting this condition and retry the test.
Retry X times and establish a failure rate threshold.
- is related to
-
SERVER-76700 Increase window of acceptable elapsed CPU times in OperationCPUTimerTest::TestReset
- Closed