rpctest: prevent process leak due to panics. #752
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.
Upstream commit bfe2ba4.
This adds a
defer
statement at the top ofTestRpcServer
which will attempt arecover
which tears down all active harnesses in the event that one of the tests causes a panic in the main goroutine.Before this commit, if a buggy test caused a panic while all integration tests were being executed, then any active harnesses would fail to be properly torn down. This would cause the running btcd processes to be leaked, possibly interfering with future test runs until the process was manually killed. This commit fixes such behavior.
In order to aide in debugging, when a test panics, the test number is printed out along with a full stack-trace from the start of the test to the panic point.