Better handling of RPC errors and RPC conn with the PeerManager (#1047)

This commit is contained in:
divma
2020-05-03 08:17:12 -05:00
committed by GitHub
parent b6c027b9ec
commit b4a1a2e483
16 changed files with 656 additions and 463 deletions

View File

@@ -62,12 +62,12 @@ fn test_status_rpc() {
}
Async::Ready(Some(BehaviourEvent::RPC(_, event))) => match event {
// Should receive the RPC response
RPCEvent::Response(id, response @ RPCErrorResponse::Success(_)) => {
RPCEvent::Response(id, response @ RPCCodedResponse::Success(_)) => {
if id == 1 {
warn!(sender_log, "Sender Received");
let response = {
match response {
RPCErrorResponse::Success(r) => r,
RPCCodedResponse::Success(r) => r,
_ => unreachable!(),
}
};
@@ -99,7 +99,7 @@ fn test_status_rpc() {
peer_id,
RPCEvent::Response(
id,
RPCErrorResponse::Success(rpc_response.clone()),
RPCCodedResponse::Success(rpc_response.clone()),
),
);
}
@@ -181,12 +181,12 @@ fn test_blocks_by_range_chunked_rpc() {
if id == 1 {
warn!(sender_log, "Sender received a response");
match response {
RPCErrorResponse::Success(res) => {
RPCCodedResponse::Success(res) => {
assert_eq!(res, sender_response.clone());
*messages_received.lock().unwrap() += 1;
warn!(sender_log, "Chunk received");
}
RPCErrorResponse::StreamTermination(
RPCCodedResponse::StreamTermination(
ResponseTermination::BlocksByRange,
) => {
// should be exactly 10 messages before terminating
@@ -225,7 +225,7 @@ fn test_blocks_by_range_chunked_rpc() {
peer_id.clone(),
RPCEvent::Response(
id,
RPCErrorResponse::Success(rpc_response.clone()),
RPCCodedResponse::Success(rpc_response.clone()),
),
);
}
@@ -234,7 +234,7 @@ fn test_blocks_by_range_chunked_rpc() {
peer_id,
RPCEvent::Response(
id,
RPCErrorResponse::StreamTermination(
RPCCodedResponse::StreamTermination(
ResponseTermination::BlocksByRange,
),
),
@@ -316,12 +316,12 @@ fn test_blocks_by_range_single_empty_rpc() {
if id == 1 {
warn!(sender_log, "Sender received a response");
match response {
RPCErrorResponse::Success(res) => {
RPCCodedResponse::Success(res) => {
assert_eq!(res, sender_response.clone());
*messages_received.lock().unwrap() += 1;
warn!(sender_log, "Chunk received");
}
RPCErrorResponse::StreamTermination(
RPCCodedResponse::StreamTermination(
ResponseTermination::BlocksByRange,
) => {
// should be exactly 1 messages before terminating
@@ -356,7 +356,7 @@ fn test_blocks_by_range_single_empty_rpc() {
peer_id.clone(),
RPCEvent::Response(
id,
RPCErrorResponse::Success(rpc_response.clone()),
RPCCodedResponse::Success(rpc_response.clone()),
),
);
// send the stream termination
@@ -364,7 +364,7 @@ fn test_blocks_by_range_single_empty_rpc() {
peer_id,
RPCEvent::Response(
id,
RPCErrorResponse::StreamTermination(
RPCCodedResponse::StreamTermination(
ResponseTermination::BlocksByRange,
),
),
@@ -449,12 +449,12 @@ fn test_blocks_by_root_chunked_rpc() {
warn!(sender_log, "Sender received a response");
assert_eq!(id, 1);
match response {
RPCErrorResponse::Success(res) => {
RPCCodedResponse::Success(res) => {
assert_eq!(res, sender_response.clone());
*messages_received.lock().unwrap() += 1;
warn!(sender_log, "Chunk received");
}
RPCErrorResponse::StreamTermination(
RPCCodedResponse::StreamTermination(
ResponseTermination::BlocksByRoot,
) => {
// should be exactly 10 messages before terminating
@@ -489,7 +489,7 @@ fn test_blocks_by_root_chunked_rpc() {
peer_id.clone(),
RPCEvent::Response(
id,
RPCErrorResponse::Success(rpc_response.clone()),
RPCCodedResponse::Success(rpc_response.clone()),
),
);
}
@@ -498,7 +498,7 @@ fn test_blocks_by_root_chunked_rpc() {
peer_id,
RPCEvent::Response(
id,
RPCErrorResponse::StreamTermination(
RPCCodedResponse::StreamTermination(
ResponseTermination::BlocksByRange,
),
),