Intermittent failure in ArticlesTest::test_expanding_a_feed_shows_all_its_articles_beyond_one_page #134
Labels
No labels
bug
devops
duplicate
enhancement
good first issue
layout
next major release
next minor release
question
research
testing
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lvl0/fedi-feed-router#134
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Tests\Feature\Livewire\ArticlesTest::test_expanding_a_feed_shows_all_its_articles_beyond_one_pageerrors intermittently during full-suite runs. It passes in isolation.What was observed
Seen once in four full-suite runs on 2026-08-11, while working on #95. Reported as an error, not a failure:
Note the assertion count on the failing run (2533) is lower than on clean runs (2553) — consistent with the run aborting partway through that test.
What does not reproduce it
--filter ArticlesTestalone → 38/38 pass--filter 'ArticlesTest|CleanupArticlesJobTest|RouteArticleRetryTest'→ 48/48 pass, 3 runs in a rowThe exception message was not captured. It scrolled out of a truncated tail and could not be reproduced afterwards. Capturing it is the first task.
The suspect code
tests/Feature/Livewire/ArticlesTest.php:341-355travels in time inside a 20-iteration loop:Three test files manipulate time and could interact through leaked global
Carbontest state:tests/Feature/Livewire/ArticlesTest.phptests/Unit/Jobs/CleanupArticlesJobTest.phptests/Unit/Models/RouteArticleRetryTest.phpA full suite takes ~100 seconds, so a second-boundary or ordering effect that only appears under specific interleaving is plausible.
startOfSecond()in the test suggests a previous encounter with second-boundary flakiness.Why this matters
A test that fails roughly one run in four makes every green run less meaningful and will eventually fail CI for no real reason — the worst kind of failure, because the reflex becomes "just re-run it".
Tasks
--order-by=randomand record the seed)Carbontest state between files, a second-boundary effect, or something elseNot caused by
Unrelated to #95, which touches platform accounts only. This test covers feeds and articles and was not modified.