Backoff retry on verification to give s3 time to propagate
Signed-off-by: Stephen J Day <stephen.day@docker.com>master
							parent
							
								
									1b975e980b
								
							
						
					
					
						commit
						632e46418b
					
				| 
						 | 
					@ -59,8 +59,8 @@ func (lw *layerWriter) Finish(dgst digest.Digest) (distribution.Layer, error) {
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// HACK(stevvooe): To deal with s3's lack of consistency, attempt to retry
 | 
						// HACK(stevvooe): To deal with s3's lack of consistency, attempt to retry
 | 
				
			||||||
	// validation on failure. Three attempts are made, backing off 100ms each
 | 
						// validation on failure. Three attempts are made, backing off
 | 
				
			||||||
	// time.
 | 
						// retries*100ms each time.
 | 
				
			||||||
	for retries := 0; ; retries++ {
 | 
						for retries := 0; ; retries++ {
 | 
				
			||||||
		canonical, err = lw.validateLayer(dgst)
 | 
							canonical, err = lw.validateLayer(dgst)
 | 
				
			||||||
		if err == nil {
 | 
							if err == nil {
 | 
				
			||||||
| 
						 | 
					@ -71,7 +71,7 @@ func (lw *layerWriter) Finish(dgst digest.Digest) (distribution.Layer, error) {
 | 
				
			||||||
			Errorf("error validating layer: %v", err)
 | 
								Errorf("error validating layer: %v", err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if retries < 3 {
 | 
							if retries < 3 {
 | 
				
			||||||
			time.Sleep(100 * time.Millisecond)
 | 
								time.Sleep(100 * time.Millisecond * time.Duration(retries+1))
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue