dev CI is red on an EMPTY commit — three timezone tests fail with no change present #91

Open
opened 2026-08-09 20:00:13 +00:00 by tim.lingo · 0 comments
Member

The fact

PR #90 is an empty commit against dev. No files, no diff. It fails. (run 3798, red after 12m14s.)

Therefore dev CI is broken independent of any change, and every PR targeting dev is blocked by a failure that belongs to none of them. #89 is the current casualty.

Reproduced locally, since Actions logs are unreachable here

This Gitea instance does not serve job logs: the run-scoped route 404s, the job-scoped route and the web route both 500. So the workflow was re-run locally in its own image via ~/neuron-lab/scripts/ci_repro.sh (ubuntu, --platform linux/amd64, plus libssl-dev which the workflow links against but never installs — see the second issue below).

Two arms:

dev head (control) dev + #89 (treatment)
gen2 self-host compile built built
elb built built
test results 3 failures the same 3, byte-identical

Failing: earth-zone, dst-spring-forward, rhythm-grounding.

FAIL  earth-zone           expected: EDT          got: America
FAIL  dst-spring-forward   expected: 03:30EDT     got: 07:30America
FAIL  rhythm-grounding     expected: 1778504400   got: 1778490000

All three are one root cause wearing three hats: the zone lookup returns the region half of a zone name (America) instead of the abbreviation (EDT), and the grounding value is off by exactly 14,400 seconds — four hours, the EDT offset. The code is producing UTC where it should produce local time, and failing to resolve the abbreviation at all.

Caveat stated plainly: the local reproduction proves dev fails without any change and proves #89 changes nothing. It does NOT prove the server fails for this same reason — that log is unreadable. The empty-commit result is the load-bearing evidence.

Why now and not on 2026-08-03

dev has not changed since #84 went green on 2026-08-03. So this is environmental: most likely a tzdata version change under the runner. It reproduces in a fresh ubuntu:24.04 with tzdata 2026c, which supports that reading.

Acceptance criteria

  1. An empty commit against dev goes green.
  2. earth-zone, dst-spring-forward and rhythm-grounding pass, and the fix is in the zone-resolution code or the test's environment assumption — explicitly one or the other, decided and stated, not both patched until green.
  3. Re-run ci_repro.sh origin/dev .gitea/workflows/ci-dev.yaml control and confirm PASS locally before pushing.

Second, smaller defect found on the way

.gitea/workflows/ci-dev.yaml installs gcc libcurl4-openssl-dev but links -lssl -lcrypto. It only works because the runner image happens to carry libssl-dev. On any leaner image the link fails. One line: add libssl-dev to the apt install.

## The fact PR #90 is an empty commit against dev. No files, no diff. **It fails.** (run 3798, red after 12m14s.) Therefore dev CI is broken independent of any change, and every PR targeting dev is blocked by a failure that belongs to none of them. #89 is the current casualty. ## Reproduced locally, since Actions logs are unreachable here This Gitea instance does not serve job logs: the run-scoped route 404s, the job-scoped route and the web route both 500. So the workflow was re-run locally in its own image via `~/neuron-lab/scripts/ci_repro.sh` (ubuntu, --platform linux/amd64, plus libssl-dev which the workflow links against but never installs — see the second issue below). Two arms: | | dev head (control) | dev + #89 (treatment) | |---|---|---| | gen2 self-host compile | built | built | | elb | built | built | | test results | 3 failures | **the same 3, byte-identical** | Failing: `earth-zone`, `dst-spring-forward`, `rhythm-grounding`. FAIL earth-zone expected: EDT got: America FAIL dst-spring-forward expected: 03:30EDT got: 07:30America FAIL rhythm-grounding expected: 1778504400 got: 1778490000 All three are one root cause wearing three hats: the zone lookup returns the *region* half of a zone name (`America`) instead of the abbreviation (`EDT`), and the grounding value is off by exactly 14,400 seconds — four hours, the EDT offset. The code is producing UTC where it should produce local time, and failing to resolve the abbreviation at all. **Caveat stated plainly:** the local reproduction proves dev fails without any change and proves #89 changes nothing. It does NOT prove the server fails for this same reason — that log is unreadable. The empty-commit result is the load-bearing evidence. ## Why now and not on 2026-08-03 dev has not changed since #84 went green on 2026-08-03. So this is environmental: most likely a tzdata version change under the runner. It reproduces in a fresh ubuntu:24.04 with tzdata 2026c, which supports that reading. ## Acceptance criteria 1. An empty commit against dev goes green. 2. `earth-zone`, `dst-spring-forward` and `rhythm-grounding` pass, and the fix is in the zone-resolution code or the test's environment assumption — explicitly one or the other, decided and stated, not both patched until green. 3. Re-run `ci_repro.sh origin/dev .gitea/workflows/ci-dev.yaml control` and confirm PASS locally before pushing. ## Second, smaller defect found on the way `.gitea/workflows/ci-dev.yaml` installs `gcc libcurl4-openssl-dev` but links `-lssl -lcrypto`. It only works because the runner image happens to carry libssl-dev. On any leaner image the link fails. One line: add `libssl-dev` to the apt install.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: neuron-technologies/el#91