Fix syntax error in dogwrap timeout handler and always collect output #538
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.
What does this PR do?
This PR addresses a bug in the timeout handling code in the dogwrap script (#537). If the
--timeout
argument is used and the child process does not exit before the timeout expires, a syntax error was thrown and no event was sent to the Datadog API.Description of the Change
I fixed the
print
syntax within the timeout handling, and also ensured that thestdout
andstderr
of the child process are still collected if the process times out (this was skipped previously).Alternate Designs
Possible Drawbacks
Verification Process
I added tests for this behavior, using mocks to simulate different subprocess behavior. (I originally tried to actually run a child process in the tests, but the behavior for signal handling in Azure devops seemed different from local. Someone with more experience in this CI environment could probably add more comprehensive testing 😄)
I also ran the dogwrap script from the command line, with various timeout behaviors, to demonstrate that the error was resolved and the event contained the output from the child process.
Additional Notes
Release Notes
Review checklist (to be filled by reviewers)
changelog/
label attached. If applicable it should have thebackward-incompatible
label attached.do-not-merge/
label attached.kind/
andseverity/
labels attached at least.