scheduler: better error handling

This commit is contained in:
Nick Ethier
2018-07-05 11:00:03 -04:00
parent 1acbf1daf9
commit 3e7d4302a6

View File

@@ -592,14 +592,18 @@ func updateRescheduleTracker(alloc *structs.Allocation, prev *structs.Allocation
}
// findPreferredNode finds the preferred node for an allocation
func (s *GenericScheduler) findPreferredNode(place placementResult) (node *structs.Node, err error) {
func (s *GenericScheduler) findPreferredNode(place placementResult) (*structs.Node, error) {
if prev := place.PreviousAllocation(); prev != nil && place.TaskGroup().EphemeralDisk.Sticky == true {
var preferredNode *structs.Node
ws := memdb.NewWatchSet()
preferredNode, err = s.state.NodeByID(ws, prev.NodeID)
if err != nil {
return nil, err
}
if preferredNode != nil && preferredNode.Ready() {
node = preferredNode
return preferredNode, nil
}
}
return
return nil, nil
}