From 96425fb520c71022ded3e9fd3524f70f18eb41a5 Mon Sep 17 00:00:00 2001 From: sakridge Date: Thu, 18 Apr 2019 12:18:31 -0700 Subject: [PATCH] Don't panic the drone on a request that ends in error. (#3869) --- drone/src/bin/drone.rs | 17 +++++++++++------ drone/src/drone.rs | 17 ++++++++++------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/drone/src/bin/drone.rs b/drone/src/bin/drone.rs index 3cf2fb78ce..3f21257692 100644 --- a/drone/src/bin/drone.rs +++ b/drone/src/bin/drone.rs @@ -1,3 +1,4 @@ +use bytes::Bytes; use clap::{crate_description, crate_name, crate_version, App, Arg}; use log::*; use solana_drone::drone::{Drone, DRONE_PORT}; @@ -85,12 +86,16 @@ fn main() -> Result<(), Box> { let (writer, reader) = framed.split(); let processor = reader.and_then(move |bytes| { - let response_bytes = drone2 - .lock() - .unwrap() - .process_drone_request(&bytes) - .unwrap(); - Ok(response_bytes) + match drone2.lock().unwrap().process_drone_request(&bytes) { + Ok(response_bytes) => { + trace!("Airdrop response_bytes: {:?}", response_bytes.to_vec()); + Ok(response_bytes) + } + Err(e) => { + info!("Error in request: {:?}", e); + Ok(Bytes::from(&b""[..])) + } + } }); let server = writer .send_all(processor.or_else(|err| { diff --git a/drone/src/drone.rs b/drone/src/drone.rs index a4e1add596..e015f3e8e4 100644 --- a/drone/src/drone.rs +++ b/drone/src/drone.rs @@ -267,13 +267,16 @@ pub fn run_local_drone( let (writer, reader) = framed.split(); let processor = reader.and_then(move |bytes| { - let response_bytes = drone2 - .lock() - .unwrap() - .process_drone_request(&bytes) - .unwrap(); - trace!("Airdrop response_bytes: {:?}", response_bytes.to_vec()); - Ok(response_bytes) + match drone2.lock().unwrap().process_drone_request(&bytes) { + Ok(response_bytes) => { + trace!("Airdrop response_bytes: {:?}", response_bytes.to_vec()); + Ok(response_bytes) + } + Err(e) => { + info!("Error in request: {:?}", e); + Ok(Bytes::from(&b""[..])) + } + } }); let server = writer .send_all(processor.or_else(|err| {