tests: fix long shutdown times for the webhook_receiver container #5458
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.
Currently,
server.py
runs as PID 1, which means that it won't be terminated by aSIGTERM
signal unless it explicitly handles it (which it doesn't). So when Docker tries to shut the container down, it sends the server aSIGTERM
, which gets ignored, and then sits there for 10 seconds before sending it aSIGKILL
.To work around this, enable the built-in Docker init program, which forwards signals to the Python server. Since the Python server is no longer PID 1,
SIGTERM
will now shut it down immediately.The
init
option is supported starting from the Compose format version 3.7, so bump the version.Motivation and context
I noticed that
webhook_receiver
takes the longest of all test containers to shut down, even though it's a trivial server.How has this been tested?
time docker container stop test_webhook_receiver_1
Checklist
develop
branch[ ] I have added a description of my changes into CHANGELOG file[ ] I have updated the documentation accordingly[ ] I have added tests to cover my changes[ ] I have linked related issues (read github docs)[ ] I have increased versions of npm packages if it is necessary (cvat-canvas,cvat-core, cvat-data and cvat-ui)
License
Feel free to contact the maintainers if that's a concern.