-
Notifications
You must be signed in to change notification settings - Fork 63
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
(HTTP code 409) conflict - conflict: unable to delete (cannot be forced) - image is being used by running container #841
Comments
It is possible to bypass this issue by first stopping the container, then pushing the update. The supervisor, under the delete-then-download strategy should do this rather than the user having to do so manually. |
Same error on supervisor ver 9.0.1
|
Hey @willswire thanks for the report. I'll try to reproduce this soon and see what we can do. I imagine it's something like the supervisor not giving the container time to exit, so this would be where I'll start looking. |
@CameronDiver thanks! If it helps at all, our current situation is:
The device will stay in a constant loop, reporting the same error. |
Thanks for the extra info; Does the container catch and act upon signals, for example the I mean even if it does, this is still a bug, because the supervisor shouldn't be trying to remove the image until the container has stopped. |
Any |
Hey @willswire sorry for the delay. I finally got some time to do some investigation here. I didn't manage to reproduce, but a colleague of mine did find a potential problem in the way that the state engine handles the If possible, would you be able to try a new supervisor image which should fix this, or alternatively provide me with the source code for your project (and I'll try to dig out a device of the same type)? The changes are implemented in this PR: #893 |
In the original implementation it was possible that the delete did not wait for the kill step to be finished, so it would not be deleted. We seperate this process into two steps, to allow for the container to have stopped before proceeding. Change-type: patch Closes: #841 Signed-off-by: Cameron Diver <cameron@balena.io>
In the original implementation it was possible that the delete did not wait for the kill step to be finished, so it would not be deleted. We seperate this process into two steps, to allow for the container to have stopped before proceeding. Change-type: patch Closes: #841 Signed-off-by: Cameron Diver <cameron@balena.io>
In the original implementation it was possible that the delete did not wait for the kill step to be finished, so it would not be deleted. We seperate this process into two steps, to allow for the container to have stopped before proceeding. Change-type: patch Closes: #841 Signed-off-by: Cameron Diver <cameron@balena.io>
In the original implementation it was possible that the delete did not wait for the kill step to be finished, so it would not be deleted. We seperate this process into two steps, to allow for the container to have stopped before proceeding. Change-type: patch Closes: #841 Signed-off-by: Cameron Diver <cameron@balena.io>
@CameronDiver we can try the new supervisor image to test! How would we go about deploying the latest image to our machine? |
Thanks @willswire I'm pretty sure it should fix your issue (hence the closing) but finding out before release is certainly better. The way that you could do this is to open a host OS terminal on your device and run |
@CameronDiver thanks! The issue has been resolved. |
Really happy to hear :) |
[cywang117] This issue has attached support thread https://jel.ly.fish/e74a1106-b0eb-4f02-8f46-b78732db1ef9 |
For context, this error message is passed by the Supervisor from the Engine during updates, when an image in the current release needs to be deleted in favor of an image in the target release. The Supervisor should wait for containers to stop before attempting to remove images, but if a container fails to stop even with a |
When implementing the delete-then-download application update strategy, devices are unable to remove the existing container due to the following error. Confirmed supervisor version running >= v2.5.1.
10.12.18 14:46:53 (-0500) Killing service 'main'
10.12.18 14:46:53 (-0500) Deleting image
10.12.18 14:46:53 (-0500) Failed to delete image due to '(HTTP code 409) conflict - conflict: unable to delete (cannot be forced) - image is being used by running container'
The text was updated successfully, but these errors were encountered: