Add some diagnostics for the same address being reported despite not in list (#1124)

* Add more diagnostics for TCP

* Address review

* Publish libp2p-tcp 0.7.2

* Add another diagnostic
This commit is contained in:
Pierre Krieger
2019-05-15 14:48:26 +02:00
committed by GitHub
parent 3d4d8df713
commit 87a352c84f
3 changed files with 9 additions and 4 deletions

View File

@ -188,7 +188,9 @@ where
if remaining == 0 { break } if remaining == 0 { break }
} }
Ok(Async::Ready(Some(ListenerEvent::Upgrade { upgrade, listen_addr, remote_addr }))) => { Ok(Async::Ready(Some(ListenerEvent::Upgrade { upgrade, listen_addr, remote_addr }))) => {
debug_assert!(listener.addresses.contains(&listen_addr)); debug_assert!(listener.addresses.contains(&listen_addr),
"Transport reported listen address {} not in the list: {:?}",
listen_addr, listener.addresses);
self.listeners.push_front(listener); self.listeners.push_front(listener);
return Async::Ready(ListenersEvent::Incoming { return Async::Ready(ListenersEvent::Incoming {
upgrade, upgrade,
@ -197,6 +199,8 @@ where
}) })
} }
Ok(Async::Ready(Some(ListenerEvent::NewAddress(a)))) => { Ok(Async::Ready(Some(ListenerEvent::NewAddress(a)))) => {
debug_assert!(!listener.addresses.contains(&a),
"Transport has reported address {} multiple times", a);
if !listener.addresses.contains(&a) { if !listener.addresses.contains(&a) {
listener.addresses.push(a.clone()); listener.addresses.push(a.clone());
} }

View File

@ -2,7 +2,7 @@
name = "libp2p-tcp" name = "libp2p-tcp"
edition = "2018" edition = "2018"
description = "TCP/IP transport protocol for libp2p" description = "TCP/IP transport protocol for libp2p"
version = "0.7.0" version = "0.7.2"
authors = ["Parity Technologies <admin@parity.io>"] authors = ["Parity Technologies <admin@parity.io>"]
license = "MIT" license = "MIT"
repository = "https://github.com/libp2p/rust-libp2p" repository = "https://github.com/libp2p/rust-libp2p"

View File

@ -49,7 +49,7 @@ use libp2p_core::{
multiaddr::{Protocol, Multiaddr}, multiaddr::{Protocol, Multiaddr},
transport::{ListenerEvent, TransportError} transport::{ListenerEvent, TransportError}
}; };
use log::{debug, error}; use log::{debug, error, trace};
use std::{ use std::{
collections::{HashMap, VecDeque}, collections::{HashMap, VecDeque},
fmt, fmt,
@ -422,7 +422,7 @@ impl Stream for TcpListenStream {
match apply_config(&self.config, &sock) { match apply_config(&self.config, &sock) {
Ok(()) => { Ok(()) => {
debug!("Incoming connection from {}", remote_addr); trace!("Incoming connection from {} on {}", remote_addr, listen_addr);
self.pending.push_back(ListenerEvent::Upgrade { self.pending.push_back(ListenerEvent::Upgrade {
upgrade: future::ok(TcpTransStream { inner: sock }), upgrade: future::ok(TcpTransStream { inner: sock }),
listen_addr, listen_addr,
@ -430,6 +430,7 @@ impl Stream for TcpListenStream {
}) })
} }
Err(err) => { Err(err) => {
debug!("Error upgrading incoming connection from {}: {:?}", remote_addr, err);
self.pending.push_back(ListenerEvent::Upgrade { self.pending.push_back(ListenerEvent::Upgrade {
upgrade: future::err(err), upgrade: future::err(err),
listen_addr, listen_addr,