I have a bit of code that checks the result of A \ b against a known value. Despite A and b being the same from run to run, the result of
x = scipy.sparse.spsolve(A, b)
appears to change, causing 50% of runs to fail, even with every dependency pinned (and verifying the same scipy and numpy wheels are being used). The tests all pass locally. In failures, there is exactly one failure mode.
x is either the correct value, or the incorrect value, but if it’s incorrect, it’s always the same incorrect value.
I’m not sure how to troubleshoot this - could be weird undocumented scipy behavior, but since the failures are intermittent for the exact same code (i.e. rerunning a successful workflow run has the possibility of failure), I think the GH Actions agent is setting up unpredictably.