From 083b14dadf780d1c516b2772c4691aa6c8df5904 Mon Sep 17 00:00:00 2001 From: Pierre Krieger <pierre.krieger1708@gmail.com> Date: Wed, 31 Jul 2019 19:35:03 +0200 Subject: [PATCH] Fix infinite loop in telemetry (#3275) --- substrate/core/telemetry/src/worker/node.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/substrate/core/telemetry/src/worker/node.rs b/substrate/core/telemetry/src/worker/node.rs index fc09e90c7db..18b31304fc5 100644 --- a/substrate/core/telemetry/src/worker/node.rs +++ b/substrate/core/telemetry/src/worker/node.rs @@ -112,7 +112,7 @@ where TTrans: Clone + Unpin, TTrans::Dial: Unpin, let mut socket = mem::replace(&mut self.socket, NodeSocket::Poisoned); self.socket = loop { match socket { - NodeSocket::Connected(mut conn) => + NodeSocket::Connected(mut conn) => match NodeSocketConnected::poll(Pin::new(&mut conn), cx, &self.addr) { Poll::Ready(Ok(v)) => match v {} Poll::Pending => break NodeSocket::Connected(conn), @@ -202,7 +202,7 @@ where TTrans::Output: Sink<BytesMut, Error = TSinkErr> + Unpin { self.need_flush = true; } else if self.need_flush { match Sink::poll_flush(Pin::new(&mut self.sink), cx) { - Poll::Pending => {} + Poll::Pending => return Poll::Pending, Poll::Ready(Err(err)) => return Poll::Ready(Err(err)), Poll::Ready(Ok(())) => self.need_flush = false, } -- GitLab