Add Active -> Offline -> Faulted tests #1257
Merged
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.
This is (hopefully) the final prep PR before addressing #1252.
There was an untested path of
Active
-(timeout)->Offline
-(too many jobs)->Faulted
; this PR adds tests for both the job and byte-based fault conditions. In addition, it confirms that live-repair works after all fault-inducing tests, moving that logic to a newasync fn run_live_repair(mut harness: TestHarness)
.Making these tests pass required fixing a (probably innocuous) race condition:
ClientIoTask::run_inner
ignores thestop
message during the initial 10s pauseI think this was only an issue in unit tests, where we manage reconnections by hand; in the real system, the second reconnection should work fine. Anyhow, I fixed it by adding the
stop
condition to the initial client sleep and connection calls, so that it can interrupt the client at any point.