diff --git a/lambda-extension/src/extension.rs b/lambda-extension/src/extension.rs index 71e5bcdf..81462c24 100644 --- a/lambda-extension/src/extension.rs +++ b/lambda-extension/src/extension.rs @@ -1,7 +1,9 @@ use crate::{logs::*, requests, Error, ExtensionError, LambdaEvent, NextEvent}; use hyper::{server::conn::AddrStream, Server}; use lambda_runtime_api_client::Client; -use std::{fmt, future::ready, future::Future, net::SocketAddr, path::PathBuf, pin::Pin, sync::Arc}; +use std::{ + convert::Infallible, fmt, future::ready, future::Future, net::SocketAddr, path::PathBuf, pin::Pin, sync::Arc, +}; use tokio::sync::Mutex; use tokio_stream::StreamExt; use tower::{service_fn, MakeService, Service}; @@ -45,14 +47,14 @@ impl<'a, E, L> Extension<'a, E, L> where E: Service, E::Future: Future>, - E::Error: Into> + fmt::Display, + E::Error: Into> + fmt::Display + fmt::Debug, // Fixme: 'static bound might be too restrictive L: MakeService<(), Vec, Response = ()> + Send + Sync + 'static, L::Service: Service, Response = ()> + Send + Sync, >>::Future: Send + 'a, - L::Error: Into>, - L::MakeError: Into>, + L::Error: Into> + fmt::Debug, + L::MakeError: Into> + fmt::Debug, L::Future: Send, { /// Create a new [`Extension`] with a given extension name @@ -199,6 +201,7 @@ where let res = ep.call(event).await; if let Err(error) = res { + println!("{:?}", error); let req = if is_invoke { requests::init_error(extension_id, &error.to_string(), None)? } else { @@ -228,8 +231,8 @@ impl Identity { } impl Service for Identity { - type Error = Error; - type Future = Pin> + Send>>; + type Error = Infallible; + type Future = Pin> + Send>>; type Response = (); fn poll_ready(&mut self, _cx: &mut core::task::Context<'_>) -> core::task::Poll> { @@ -251,7 +254,7 @@ impl Service<()> for MakeIdentity where T: Send + Sync + 'static, { - type Error = Error; + type Error = Infallible; type Response = Identity; type Future = Pin> + Send>>; diff --git a/lambda-extension/src/lib.rs b/lambda-extension/src/lib.rs index 9bb44b50..e3e72eba 100644 --- a/lambda-extension/src/lib.rs +++ b/lambda-extension/src/lib.rs @@ -26,7 +26,7 @@ pub async fn run(events_processor: E) -> Result<(), Error> where E: Service, E::Future: Future>, - E::Error: Into> + fmt::Display, + E::Error: Into> + fmt::Display + fmt::Debug, { let ext = Extension::new().with_events_processor(events_processor); ext.run().await diff --git a/lambda-extension/src/logs.rs b/lambda-extension/src/logs.rs index 66f47ee1..5fd32e4f 100644 --- a/lambda-extension/src/logs.rs +++ b/lambda-extension/src/logs.rs @@ -1,6 +1,6 @@ use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; -use std::{boxed::Box, sync::Arc}; +use std::{boxed::Box, fmt, sync::Arc}; use tokio::sync::Mutex; use tower::Service; use tracing::{error, trace}; @@ -144,7 +144,7 @@ pub(crate) async fn log_wrapper( ) -> Result, Box> where S: Service, Response = ()>, - S::Error: Into>, + S::Error: Into> + fmt::Debug, S::Future: Send, { trace!("Received logs request"); @@ -172,7 +172,10 @@ where { let mut service = service.lock().await; - let _ = service.call(logs).await; + match service.call(logs).await { + Ok(_) => (), + Err(err) => println!("{:?}", err), + } } Ok(hyper::Response::new(hyper::Body::empty()))