I am not sure how often this scenario occurs in reality :) I had to manipulate state directly to un-assign unit from a machine to properly test the fix.
However, the reason why there was a failure is because one of the checks we run when filtering is whether any of the open ports on a machine for a unit match. Of course, when the unit is not assigned to a machine the check failed saying that we could not figure out unit's machine. I have changed the logic to treat the case of an unassigned unit as a non-match instead of erring out.
I am not sure how often this scenario occurs in reality :) I had to manipulate state directly to un-assign unit from a machine to properly test the fix.
However, the reason why there was a failure is because one of the checks we run when filtering is whether any of the open ports on a machine for a unit match. Of course, when the unit is not assigned to a machine the check failed saying that we could not figure out unit's machine. I have changed the logic to treat the case of an unassigned unit as a non-match instead of erring out.
This is the fix against 2.3: https:/ /github. com/juju/ juju/pull/ 8744