You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Four runs in a row - #372, #373, main after both, and #374 - ended EUnit like this:
*unexpected termination of test process*
::{shutdown,timeout}
=======================================================
Failed: 0. Skipped: 0. Passed: 1580.
One or more tests were cancelled.
===> Error running tests
Zero failures, a red build, and no test named. It reproduces on CI only; the same commits run 1573-1580 tests with 0 failures locally.
What has been ruled out
Fixture setup running under eunit's 5s default. Real gap, closed in test: give the property fixtures a hang detector, not a performance budget #374 - four property modules had {timeout, N, ...} on the property but not on the {setup, ...} around it. The run still fails the same way afterwards, with the same count, so this was not the cause.
prop_reconnect_lifecycle being slow. It is the last module header printed before the abort, but it runs in 1.9s on its own and its property has a 60s timeout.
The lead worth following
The abort lands one second after the last module header. No timer in the tree is one second, so the group that timed out is almost certainly not the one whose name was printed last - eunit reports the cancellation when it reaps, not when the timer starts. Finding the group that actually holds the expiring timer is the whole task.
Until it is found, a red EUnit on this repo means nothing, which is worse than the flake.
Four runs in a row - #372, #373, main after both, and #374 - ended EUnit like this:
Zero failures, a red build, and no test named. It reproduces on CI only; the same commits run 1573-1580 tests with 0 failures locally.
What has been ruled out
{timeout, N, ...}on the property but not on the{setup, ...}around it. The run still fails the same way afterwards, with the same count, so this was not the cause.prop_reconnect_lifecyclebeing slow. It is the last module header printed before the abort, but it runs in 1.9s on its own and its property has a 60s timeout.The lead worth following
The abort lands one second after the last module header. No timer in the tree is one second, so the group that timed out is almost certainly not the one whose name was printed last - eunit reports the cancellation when it reaps, not when the timer starts. Finding the group that actually holds the expiring timer is the whole task.
Until it is found, a red EUnit on this repo means nothing, which is worse than the flake.