docker: fix nw_service not available error #1556
Open
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.
There is race condition between container start and ssh-server service ready in container, which may possible make
nw_service
not available.Make
nw_service
for docker not static allowstarget
to wait for the available ofnw_service
, rather than raise an exception.Description
Run the command
pytest -s --lg-env env.yaml test_shell.py
, there is a low probability next:This is because when container start, the ssh-server maybe not ready very quickly, which makes
_socket_connect
failure, thennw_service.avail = False
.This PR assigned a parent to
nw_service
which makes it no longer static, thentarget
wait until they are available.After this patch, and if explicitly print exception, it will show next:
You can see even
Connection refused
, finally after ssh-server ready, the test pass.