Let the inline test client say it is a local run, because it is one - #652
Merged
Conversation
FakeClient in the integration harness runs every submitted callable inline, so it stands in for a local run. It did not set the attribute that says so. _report_parallelism tells a local run from a cluster run by whether the client owns a cluster object, because a real local Client drives a LocalCluster and a cluster client connects to a scheduler and owns nothing. The double set no such attribute, so it presented itself as a cluster run, and then failed the call that claim leads to. Nothing breaks. The failure is caught and the fit is unaffected. What it costs is attention. The handler records a full traceback, and pytest shows a captured log only for a test that fails, so the traceback turns up in exactly the situation where someone is reading a log to find out why something broke, attached to a fit that broke for an unrelated reason. It came up while diagnosing #648 and had to be ruled out before the real cause could be found. Test only. The attribute just has to be present; nothing reads through it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FakeClientin the integration harness runs every submitted callable inline, so it stands in for a local run. It did not set the attribute that says so._report_parallelismtells a local run from a cluster run by whether the client owns a cluster object, because a real localClientdrives aLocalClusterand a cluster client connects to a scheduler and owns nothing. The double set no such attribute, so it presented itself as a cluster run, and then failed thescheduler_info()call that claim leads to.Nothing breaks. The failure is caught and the fit is unaffected. What it costs is attention. The handler records a full traceback, and pytest shows a captured log only for a test that fails, so the traceback turns up in exactly the situation where someone is reading a log to find out why something broke, attached to a fit that broke for an unrelated reason. It came up while diagnosing #648 and had to be ruled out before the real cause could be found.
Test only, one attribute. It just has to be present; nothing reads through it.
Checked on
test_run_loop.py,test_wall_time_fit.pyandtest_cluster.py: 305 passed, 3 skipped, and the traceback is gone from a failing test's captured log.