-
Notifications
You must be signed in to change notification settings - Fork 293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix concurrency waiting when running containers #1735
Conversation
Issue fixed, it was an error on my side, not on buildpack's side |
@quantumsheep thanks for the update! |
@natalieparellano Ok so... it's effectively an issue from buildpacks, if the request takes some time to be performed, the state is already I had the impression it was fixed on my side but my code just was faster than the Docker container, coming back to a slower iteration, it blocks. |
After investigating a little bit more, it seems like buildpacks was conceived to work with Docker < 1.30, at that time they used to not block on |
Signed-off-by: Nathanael Demacon <nathanael.dmc@outlook.fr> Signed-off-by: Nathanael DEMACON <ndemacon@scaleway.com>
Signed-off-by: Nathanael DEMACON <ndemacon@scaleway.com>
Hi @quantumsheep - thanks for iterating on this and explaining what's going on! I looked into this together with @natalieparellano today. What you did makes sense, but it's basically shimming us backwards into an older api style. It looks like in the newer api style, we could do without your Wrapper function if we called Would you check whether we can also succeed in your use-case without the wrapper you wrote, by re-ordering our docker API calls? If it works, this would be preferable from our perspective since it would update our usage of docker to the more modern paradigm, rather than shimming for backwards compatibility. Thank you! |
@joe-kimmel-vmw thanks for you answer! The only way I can do this while keeping the current workflow is by editing the Also it might not work because a container can exit before we use |
I'll defer to the |
I really insist on the fact that it might not work because a container can exit before we use |
Thanks @quantumsheep - it sounds like the solution in this PR is the one to go with! Really appreciate you doing the extra legwork to verify. |
Summary
During container creation, pack was using the Docker <1.30 container wait way of doing. This made building waits undefinitely in some cases.
Before
ContainerWait
is blocking.After
ContainerWait
is not blocking and we use the channels to wait for the states we wants.Related
Resolves #1732