tower-0.5.2
Platform: linux
In the process of using tonic, I found that its dynamic endpoint uses tower. I found a problem in actual use. When <Balance as Service>::poll_ready is triggered, Balance::promote_pending_to_ready=>ReadyCache::poll_pending=>futures_util::stream::futures_unordered::FuturesUnordered::poll_next has an issue: assuming there are multiple endpoints, only one Poll::Ready(Some(Ok((key, svc, cancel_rx)))) will be returned here, and the others are Poll::Pending, which makes the balance function invalid.
tower-0.5.2
Platform: linux
In the process of using tonic, I found that its dynamic endpoint uses tower. I found a problem in actual use. When
<Balance as Service>::poll_readyis triggered,Balance::promote_pending_to_ready=>ReadyCache::poll_pending=>futures_util::stream::futures_unordered::FuturesUnordered::poll_nexthas an issue: assuming there are multiple endpoints, only onePoll::Ready(Some(Ok((key, svc, cancel_rx))))will be returned here, and the others arePoll::Pending, which makes the balance function invalid.