code: func (c *convergence) actualLRPsWithMissingCells(logger lager.Logger, cellSet models.CellSet) {
  	logger = logger.Session("actual-lrps-with-missing-cells")
  
  	var ordinaryKeysWithMissingCells []*models.ActualLRPKeyWithSchedulingInfo
  
  	rows, err := c.selectLRPsWithMissingCells(logger, c.db, cellSet)
  	if err != nil {
  		logger.Error("failed-query", err)
  		return
  	}
  
  	missingCellSet := make(map[string]struct{})
  	for rows.Next() {
  		var index int32
  		var cellID string
  		var presence models.ActualLRP_Presence
  		schedulingInfo, err := c.fetchDesiredLRPSchedulingInfoAndMore(logger, rows, &index, &cellID, &presence)
  		if err == nil && presence == models.ActualLRP_Ordinary {
  			ordinaryKeysWithMissingCells = append(ordinaryKeysWithMissingCells, &models.ActualLRPKeyWithSchedulingInfo{
  				Key: &models.ActualLRPKey{
  					ProcessGuid: schedulingInfo.ProcessGuid,
  					Domain:      schedulingInfo.Domain,
  					Index:       index,
  				},
  				SchedulingInfo: schedulingInfo,
  			})
  		}
  		missingCellSet[cellID] = struct{}{}
  	}
  
  	if rows.Err() != nil {
  		logger.Error("failed-getting-next-row", rows.Err())
  	}
  
  	for key, _ := range missingCellSet {
  		c.missingCellIds = append(c.missingCellIds, key)
  	}
  
  	if len(c.missingCellIds) > 0 {
  		logger.Info("detected-missing-cells", lager.Data{"cell_ids": c.missingCellIds})
  	}
  
  	c.ordinaryKeysWithMissingCells = ordinaryKeysWithMissingCells
  }
docs: // Unclaim Actual LRPs that have missing cells (not in the cell set passed to
  // convergence) and add them to the list of start requests.