Skip to content

worker: fix gc race on fromremote#1044

Merged
AkihiroSuda merged 1 commit intomoby:masterfrom
tonistiigi:fromremote-gc-race
Jun 26, 2019
Merged

worker: fix gc race on fromremote#1044
AkihiroSuda merged 1 commit intomoby:masterfrom
tonistiigi:fromremote-gc-race

Conversation

@tonistiigi
Copy link
Copy Markdown
Member

fix #991

Fixes issue when gc/prune runs in the middle of the cache import. The issue is that if the imported record already exists it is skipped on unpack but might be released before the reference is taken on the unpacked records. Fix is to take a ref temporarily on unpack if it exists.

I think there are still small cases that can go wrong on pull, eg. when there is an extra condition with multiple blobs matching same snapshot. I want to refactor the whole cache record management on top of containerd/containerd#3304 that should fix all of these races. Hopefully this should be good enough fix all the practical cases where this issue can turn up.

@msg555

@msg555
Copy link
Copy Markdown
Contributor

msg555 commented Jun 11, 2019

Can confirm that this patch made my build success rate go from 0 of 20 to 19 of 20. Seems to address the main issue I was running into. The one remaining failure seems to be an entirely different issue.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
@tonistiigi tonistiigi force-pushed the fromremote-gc-race branch from dc497b4 to 276fee0 Compare June 17, 2019 17:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build stalls early

3 participants