tests: dump logs at the end of exit callback #5952
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.
Summary
There are some random TestCatchupOverGossip failures like this , and the panic itself is caused by the fact controller's
StartAlgod
inner goroutine calls asserts after the test itself is terminated. For some reason we do not get any log output in case of panic and my current suggestion it is because of STDOUT buffering and panic just flushes STDERR with its own message.This PR does not prevent the race itself but makes it much less probable by deferring logs dumping to after asserting.
A proper fix is somewhat complicated because the controller object copying/modifying, and
StartAlgod
is called on a different object thanStopAlgod
. I suggest to apply this fast fix to see if it help gathering required info, and implement the controller lifetime refactoring if needed.Test Plan
This is a test fix.