-
Notifications
You must be signed in to change notification settings - Fork 175
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
Needs test: Context deadline during Pull causes an already exists error from govmomi on a subsequent pull #1409
Comments
assigning to @hickeng for triage |
Assigning @jzt to look into the context timeout - pulls could take a very long time with a slow network connection; this is not an operation that we should timeout (unless docker has a timeout here, in which case it should be on the personality side). Putting in initial estimate for investigation and fix of timeout. #933 is the issue that will address the already exist/re-pull behaviour. |
There are currently no context timeouts from the persona to the portlayer, and imagec uses a 3600 second timeout for pulls, so I don't think that's it. There is one in the disk package (5 seconds) that may be where this came from: Line 40 in 9609f26
This is exercised during the Tagging @fdawg4l in case he has something to add. |
Sounds reasonable. We can modify the timeout in the VCH; the time it takes to create the vmdk and attach it to the VCH is completely up to vsphere. I don't know what the upper bound of that operation is on a busy system. @hickeng? |
@fdawg4l Almost unbounded I think. We're generally moving to a cancellation based approach in the PL, and the caller (in this case the personality) can furnish timeouts if that's required semantics. |
Sounds good. We'll move to cancellation and nuke the timeout in the As far as this issue goes, we need 2 things 2 is done. We merged this a little over a month ago. We just need 1 now and to remove the timeout. That is not to say we aren't going to see a timeout somewhere else in the stack- does the docker client have a timeout? Do the handlers in the docker daemon have a default timeout per handler? We can solve the things mentioned, but largely close the issue since subsquent pulls already work. Timeouts / cancellation in general need their own epics. |
|
Workaround: Issue the command again and it should work. |
@matthewavery, @jzt's recent |
Already in the release notes, so removing the kind/note tag. |
1 similar comment
Already in the release notes, so removing the kind/note tag. |
Marking this a low priority est 2 issue now, with the assumption this is fixed already and now making this a test item to make sure we have a test that covers this scenario. |
@jzt can you confirm that this is fixed? |
@jzt ^^^ let's close if this is fixed |
@corrieb @mhagen-vmware I'm down to close. I haven't seen/heard of this happening for quite a long time. @mhagen-vmware do you agree? |
#5372 is another instance of this - as per #5372 (comment) we should be deleting incomplete layers so they can be re-pulled. |
This looks to be resolved in 5372. Moving from bug to test issue. A test needs to be written to cover this situation. |
During a
pull busybox
it looks like a context deadline occurred somewhere on the portlayer side during a write image causing an inconsistent state. On repeat of the pull the layer is found to already exists after trying a new right. On a subsequent create the busybox image is still not found and an attempt to pull it is made. The appropriate response should have been that the layer already exists on the second pull.The text was updated successfully, but these errors were encountered: