{"action":"created","issue":{"url":"https://api.github.com/repos/docker/distribution/issues/1710","repository_url":"https://api.github.com/repos/docker/distribution","labels_url":"https://api.github.com/repos/docker/distribution/issues/1710/labels{/name}","comments_url":"https://api.github.com/repos/docker/distribution/issues/1710/comments","events_url":"https://api.github.com/repos/docker/distribution/issues/1710/events","html_url":"https://github.com/docker/distribution/pull/1710","id":153431083,"number":1710,"title":"[Swift] add simple heuristic to detect incomplete DLOs during read ops","user":{"login":"majewsky","id":24696,"avatar_url":"https://avatars.githubusercontent.com/u/24696?v=3","gravatar_id":"","url":"https://api.github.com/users/majewsky","html_url":"https://github.com/majewsky","followers_url":"https://api.github.com/users/majewsky/followers","following_url":"https://api.github.com/users/majewsky/following{/other_user}","gists_url":"https://api.github.com/users/majewsky/gists{/gist_id}","starred_url":"https://api.github.com/users/majewsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/majewsky/subscriptions","organizations_url":"https://api.github.com/users/majewsky/orgs","repos_url":"https://api.github.com/users/majewsky/repos","events_url":"https://api.github.com/users/majewsky/events{/privacy}","received_events_url":"https://api.github.com/users/majewsky/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/docker/distribution/labels/group/distribution","name":"group/distribution","color":"ededed"},{"url":"https://api.github.com/repos/docker/distribution/labels/status/0-triage","name":"status/0-triage","color":"ededed"}],"state":"open","locked":false,"assignee":{"login":"RichardScothern","id":922018,"avatar_url":"https://avatars.githubusercontent.com/u/922018?v=3","gravatar_id":"","url":"https://api.github.com/users/RichardScothern","html_url":"https://github.com/RichardScothern","followers_url":"https://api.github.com/users/RichardScothern/followers","following_url":"https://api.github.com/users/RichardScothern/following{/other_user}","gists_url":"https://api.github.com/users/RichardScothern/gists{/gist_id}","starred_url":"https://api.github.com/users/RichardScothern/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RichardScothern/subscriptions","organizations_url":"https://api.github.com/users/RichardScothern/orgs","repos_url":"https://api.github.com/users/RichardScothern/repos","events_url":"https://api.github.com/users/RichardScothern/events{/privacy}","received_events_url":"https://api.github.com/users/RichardScothern/received_events","type":"User","site_admin":false},"assignees":[{"login":"RichardScothern","id":922018,"avatar_url":"https://avatars.githubusercontent.com/u/922018?v=3","gravatar_id":"","url":"https://api.github.com/users/RichardScothern","html_url":"https://github.com/RichardScothern","followers_url":"https://api.github.com/users/RichardScothern/followers","following_url":"https://api.github.com/users/RichardScothern/following{/other_user}","gists_url":"https://api.github.com/users/RichardScothern/gists{/gist_id}","starred_url":"https://api.github.com/users/RichardScothern/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RichardScothern/subscriptions","organizations_url":"https://api.github.com/users/RichardScothern/orgs","repos_url":"https://api.github.com/users/RichardScothern/repos","events_url":"https://api.github.com/users/RichardScothern/events{/privacy}","received_events_url":"https://api.github.com/users/RichardScothern/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/docker/distribution/milestones/16","html_url":"https://github.com/docker/distribution/milestones/Registry/2.5","labels_url":"https://api.github.com/repos/docker/distribution/milestones/16/labels","id":1669665,"number":16,"title":"Registry/2.5","description":"","creator":{"login":"RichardScothern","id":922018,"avatar_url":"https://avatars.githubusercontent.com/u/922018?v=3","gravatar_id":"","url":"https://api.github.com/users/RichardScothern","html_url":"https://github.com/RichardScothern","followers_url":"https://api.github.com/users/RichardScothern/followers","following_url":"https://api.github.com/users/RichardScothern/following{/other_user}","gists_url":"https://api.github.com/users/RichardScothern/gists{/gist_id}","starred_url":"https://api.github.com/users/RichardScothern/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RichardScothern/subscriptions","organizations_url":"https://api.github.com/users/RichardScothern/orgs","repos_url":"https://api.github.com/users/RichardScothern/repos","events_url":"https://api.github.com/users/RichardScothern/events{/privacy}","received_events_url":"https://api.github.com/users/RichardScothern/received_events","type":"User","site_admin":false},"open_issues":14,"closed_issues":28,"state":"open","created_at":"2016-03-28T17:47:26Z","updated_at":"2016-06-28T22:09:35Z","due_on":"2016-06-14T07:00:00Z","closed_at":null},"comments":4,"created_at":"2016-05-06T11:20:21Z","updated_at":"2016-07-19T09:08:45Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/docker/distribution/pulls/1710","html_url":"https://github.com/docker/distribution/pull/1710","diff_url":"https://github.com/docker/distribution/pull/1710.diff","patch_url":"https://github.com/docker/distribution/pull/1710.patch"},"body":"This is similar to waitForSegmentsToShowUp (cf. #1650) which is called during Close/Commit. Intuitively, you wouldn't expect missing segments to be a problem during read operations, since the previous Close/Commit confirmed that all segments are there.\r\n\r\nBut due to the distributed nature of Swift, the read request could be hitting a different storage node of the Swift cluster, where the segments are still missing.\r\n\r\nLoad tests on my team's staging Swift cluster have shown this to occur about once every 100-200 layer uploads when the Swift proxies are under high load. The retry logic, borrowed from waitForSegmentsToShowUp, allows the Registry to skip past this temporary inconsistency.\r\n\r\nTip: View the diff with [`?w=1`](https://github.com/docker/distribution/pull/1710/files?w=1)."},"comment":{"url":"https://api.github.com/repos/docker/distribution/issues/comments/233574032","html_url":"https://github.com/docker/distribution/pull/1710#issuecomment-233574032","issue_url":"https://api.github.com/repos/docker/distribution/issues/1710","id":233574032,"user":{"login":"majewsky","id":24696,"avatar_url":"https://avatars.githubusercontent.com/u/24696?v=3","gravatar_id":"","url":"https://api.github.com/users/majewsky","html_url":"https://github.com/majewsky","followers_url":"https://api.github.com/users/majewsky/followers","following_url":"https://api.github.com/users/majewsky/following{/other_user}","gists_url":"https://api.github.com/users/majewsky/gists{/gist_id}","starred_url":"https://api.github.com/users/majewsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/majewsky/subscriptions","organizations_url":"https://api.github.com/users/majewsky/orgs","repos_url":"https://api.github.com/users/majewsky/repos","events_url":"https://api.github.com/users/majewsky/events{/privacy}","received_events_url":"https://api.github.com/users/majewsky/received_events","type":"User","site_admin":false},"created_at":"2016-07-19T09:08:45Z","updated_at":"2016-07-19T09:08:45Z","body":"Is this good to go? Would like to have this in 2.5 so that I can switch back to the official images in my prod env."}}
{"actor":{"display_login":"majewsky"}}