OutlierDetectionLoadBalancer does not override Subchannel.shutdown() to remove the subchannel from AddressTracker. If a LB policy re-creates subchannels over its lifetime (without address changes, like the new pick-first will do), then these subchannels can accumulate and leak memory.
While this is an existing bug today, I don't think any of our existing policies will trigger this issue. The policies today only shutdown subchannels when addresses change, and outlier detection cleans up the entire AddressTracker in that case.
But the fix here should be easy, and it will be important very soon, so we should do this sooner than later.