Skip to content

Fixed GH-22508: Flaky hrtime.phpt test - #23044

Open
veksa wants to merge 1 commit into
php:masterfrom
veksa:fix-flaky-hrtime-test
Open

Fixed GH-22508: Flaky hrtime.phpt test#23044
veksa wants to merge 1 commit into
php:masterfrom
veksa:fix-flaky-hrtime-test

Conversation

@veksa

@veksa veksa commented Aug 4, 2026

Copy link
Copy Markdown

Fixes GH-22508.

The test measures the same interval with microtime() and hrtime() and fails if they disagree by more than 5%. The interval comes from a fixed-iteration busy loop that runs in about 5ms on current hardware, and at that scale a single scheduling preemption is already worth more than 5% — so on a loaded machine the test fails for reasons unrelated to hrtime(). The --FLAKY-- retry isn't always enough, as the failures in the issue show.

Instead of raising the threshold, this busy-waits for 100ms of wall clock time rather than counting iterations, so the interval no longer depends on machine speed and jitter stays small relative to it. Over 200 local runs the worst case drops from 2.8e-2 to 2.4e-3 (p95: 3.1e-4 to 4.9e-5). The test still finishes in well under a second.

I left --FLAKY-- in place as a safety net; it can go later if this holds up in CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Flaky hrtime.phpt test

1 participant