Skip to content

master is red: four union-source absent-column tests fail, blocking every open PR #820

Description

@philcunliffe

master is red, and because GitHub's pull_request runs test a merge of the branch with the base, every open PR in the repo inherits the failure and reads as FAILURE regardless of its own content.

The failing tests

Four, all in the union-source absent-column area:

✖ the drifted cell is unresolved and throws; only collect() turns it into undefined
✖ a partition whose rows carry no resolved map makes a bare projection throw
✖ evaluating a column one partition lacks throws, and so does a non-identifier sibling
✖ SELECT * keeps each partition row shape, so a drifted key is absent rather than undefined

Job test (24) fails; test (22) is cancelled as a consequence, so the matrix reports two red cells for one root cause.

Evidence that it is master's, not any branch's

  • Master's own CI is red at 51a011ac, and at dfe3e0e4 and 70b9c1c7 before it. llp-check is green throughout; only the CI workflow fails.
  • PR Smoke JSDoc names disjointness, not coverage, as what the loaded-only cut rests on (#761) #795's CI failure is exactly these same four test names, and that branch was cut from 04330abb, which predates the change that introduced them.
  • Branch push runs are green where the pull_request run for the same head is red. That is the tell: push builds the branch alone, pull_request builds the branch merged into master.

Likely origin

Commit 70b9c1c7, "The union's absent-column contract is undefined-or-throws, not null (#731) (#740)". The four failing tests are precisely the contract that PR changed. It went in green on its own branch and turned master red on merge, which is the classic semantic-conflict shape: the PR was mergeable and green, and still incompatible with what landed alongside it.

Worth checking against llp/0240-icebird-absent-column-contract.decision.md and llp/0241-scan-rows-carry-advertised-columns.decision.md to establish which behaviour is the intended one before changing test or source. The tests may be asserting the pre-#740 contract, in which case they are what needs updating; or #740's implementation may not match the contract those decisions settled. Read the decisions first and fix from evidence rather than making the assertion match whatever the code currently does.

Why this is urgent

Six otherwise-healthy PRs (#795, #796, #799, #800, #815, #817) are currently blocked behind this, and three more (#787, #777, #759) additionally need conflict resolution after the recent merge batch. Nothing can reach a green, mergeable state until master is green again.

Repro

git checkout master && git pull
npm install
npm test

Related: #778 (the absent-column contract documentation deferred from the same PR #740).

Filed by neutral during a reconcile tick, after confirming the failure is inherited rather than per-PR.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingneutral:fixDelegate this issue to neutral for an autonomous fix attempt (reproduce -> fix -> PR)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions