• Seth Hoenig's avatar
    consul: avoid triggering unnecessary sync when removing workload · b937e7ba
    Seth Hoenig authored
    There are bits of logic in callers of RemoveWorkload on group/task
    cleanup hooks which call RemoveWorkload with the "Canary" version
    of the workload, in case the alloc is marked as a Canary. This logic
    triggers an extra sync with Consul, and also doesn't do the intended
    behavior - for which no special casing is necessary anyway. When the
    workload is marked for removal, all associated services and checks
    will be removed regardless of the Canary status, because the service
    and check IDs do not incorporate the canary-ness in the first place.
    
    The only place where canary-ness matters is when updating a workload,
    where we need to compute the hash of the services and checks to determine
    whether they have been modified, the Canary flag of which is a part of
    that.
    
    Fixes #10842
    b937e7ba