mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	Don’t stop daemon on migration hard failure
Also changes missing storage layer for container RWLayer to a soft failure. Fixes #20147 Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
		
							parent
							
								
									5f8164d587
								
							
						
					
					
						commit
						2798d7a6a6
					
				
					 3 changed files with 4 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -748,7 +748,7 @@ func NewDaemon(config *Config, registryService *registry.Service) (daemon *Daemo
 | 
			
		|||
 | 
			
		||||
	migrationStart := time.Now()
 | 
			
		||||
	if err := v1.Migrate(config.Root, graphDriver, d.layerStore, d.imageStore, referenceStore, distributionMetadataStore); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
		logrus.Errorf("Graph migration failed: %q. Your old graph data was found to be too inconsistent for upgrading to content-addressable storage. Some of the old data was probably not upgraded. We recommend starting over with a clean storage directory if possible.", err)
 | 
			
		||||
	}
 | 
			
		||||
	logrus.Infof("Graph migration to content-addressability took %.2f seconds", time.Since(migrationStart).Seconds())
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@ func (ls *layerStore) CreateRWLayerByGraphID(name string, graphID string, parent
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	if !ls.driver.Exists(graphID) {
 | 
			
		||||
		return errors.New("graph ID does not exist")
 | 
			
		||||
		return fmt.Errorf("graph ID does not exist: %q", graphID)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var p *roLayer
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -282,7 +282,8 @@ func migrateContainers(root string, ls graphIDMounter, is image.Store, imageMapp
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		if err := ls.CreateRWLayerByGraphID(id, id, img.RootFS.ChainID()); err != nil {
 | 
			
		||||
			return err
 | 
			
		||||
			logrus.Errorf("migrate container error: %v", err)
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		logrus.Infof("migrated container %s to point to %s", id, imageID)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue