Skip to content

The #5448 late-row live test passes from 00:00 to 04:00 UTC - #5494

Merged
erikdarlingdata merged 1 commit into
devfrom
fix/builtdays-midnight
Oct 8, 2026
Merged

erikdarlingdata merged 1 commit into
devfrom
fix/builtdays-midnight

Conversation

@erikdarlingdata

Copy link
Copy Markdown
Owner

The plan regression late-row live test failed every day from 00:00 to 04:00 UTC. Its seed built the window's days counted back from today. The window starts four hours before now, so in those hours its first day is yesterday minus 14 and was never built. The seed now counts the built days from the date of the window start. Only the test changes. The product already reads an unbuilt day live, by design.

The seed takes an optional fixed clock. The late-row test runs once on the real clock and again at 00:30, 03:59, 04:00 and 12:00 UTC on a fixed date. Every assertion is kept.

Why

CI failed shortly after midnight UTC. The late-row test failed at its first built-days assertion because the window's first day was missing from the built days.

What changes

  • Darling/Darling.Tests/PlanRegressionBuiltDaysFallbackLiveTests.cs: SeedAndBuildAsync builds days start.Date - 14 through start.Date - 3 (was now.Date - 14 through now.Date - 3). It takes an optional utcNow. The late-row test body moved to a helper, with a Fact on the real clock and a Theory at the fixed clocks.
  • Siblings checked with a search for PlanRegressionDaily: the read-shape, drill-down window-start, parity and trigger classes anchor the window on today itself or use constants. None pairs an hours-back window with a built-day range, so none share the defect. The drill-down reuse class builds no days.
  • Product code is untouched. The fixed clock reaches the seed, the day builder and the window. The product's own read takes its window from the context start, not from a clock.

Test plan

  • Rig on a throwaway PostgreSQL in UTC, run at 00:33Z. Old seed, class PlanRegressionBuiltDaysFallbackLiveTests: Total 10, Failed 3 (real clock, 00:30, 03:59). The 04:00 and 12:00 cases passed.
  • New seed, same class: Total 10, Failed 0.
  • -trait Stage=Guard -failSkips: Total 1371, Failed 0. *Census*: Total 453, Failed 0 (1 skipped). *Ratchet*: Total 15, Failed 0.
  • Build: 0 warnings, 0 errors.
  • Full suite not run on this laptop. CI decides.

CHANGELOG: SECTION: None

… day, so it passes from 00:00 to 04:00 UTC
@erikdarlingdata
erikdarlingdata marked this pull request as ready for review October 8, 2026 00:38
@erikdarlingdata
erikdarlingdata merged commit 6be263e into dev Oct 8, 2026
24 of 34 checks passed
@erikdarlingdata
erikdarlingdata deleted the fix/builtdays-midnight branch October 8, 2026 00:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant