diff --git a/quickwit/quickwit-serve/src/cluster_api/rest_handler.rs b/quickwit/quickwit-serve/src/cluster_api/rest_handler.rs index ddd8f4ffa05..05ba2aa60dd 100644 --- a/quickwit/quickwit-serve/src/cluster_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/cluster_api/rest_handler.rs @@ -44,7 +44,7 @@ pub fn cluster_handler( .then(get_cluster) .and(extract_format_from_qs()) .map(into_rest_api_response) - .recover(recover_fn) + .recover(recover_fn).boxed() } #[utoipa::path( diff --git a/quickwit/quickwit-serve/src/delete_task_api/handler.rs b/quickwit/quickwit-serve/src/delete_task_api/handler.rs index eae5d625160..18933ac190b 100644 --- a/quickwit/quickwit-serve/src/delete_task_api/handler.rs +++ b/quickwit/quickwit-serve/src/delete_task_api/handler.rs @@ -64,7 +64,7 @@ pub fn delete_task_api_handlers( ) -> impl Filter + Clone { get_delete_tasks_handler(metastore.clone()) .or(post_delete_tasks_handler(metastore.clone())) - .recover(recover_fn) + .recover(recover_fn).boxed() } pub fn get_delete_tasks_handler( diff --git a/quickwit/quickwit-serve/src/developer_api/mod.rs b/quickwit/quickwit-serve/src/developer_api/mod.rs index 2438e93146e..537cbe76a08 100644 --- a/quickwit/quickwit-serve/src/developer_api/mod.rs +++ b/quickwit/quickwit-serve/src/developer_api/mod.rs @@ -46,7 +46,7 @@ pub(crate) fn developer_api_routes( warp::path!("api" / "developer" / ..) .and( debug_handler(cluster.clone()) - .or(log_level_handler(env_filter_reload_fn.clone())) + .or(log_level_handler(env_filter_reload_fn.clone()).boxed()) .or(pprof_handlers()), ) .recover(recover_fn) diff --git a/quickwit/quickwit-serve/src/elasticsearch_api/bulk.rs b/quickwit/quickwit-serve/src/elasticsearch_api/bulk.rs index 5bd5ab43829..53fce083cf5 100644 --- a/quickwit/quickwit-serve/src/elasticsearch_api/bulk.rs +++ b/quickwit/quickwit-serve/src/elasticsearch_api/bulk.rs @@ -75,7 +75,7 @@ pub fn es_compat_index_bulk_handler( ) .and(extract_format_from_qs()) .map(make_elastic_api_response) - .recover(recover_fn) + .recover(recover_fn).boxed() } async fn elastic_ingest_bulk( diff --git a/quickwit/quickwit-serve/src/elasticsearch_api/mod.rs b/quickwit/quickwit-serve/src/elasticsearch_api/mod.rs index a3b156dedee..d0444b1079e 100644 --- a/quickwit/quickwit-serve/src/elasticsearch_api/mod.rs +++ b/quickwit/quickwit-serve/src/elasticsearch_api/mod.rs @@ -66,7 +66,7 @@ pub fn elastic_api_handlers( .or(es_compat_bulk_handler( ingest_service.clone(), ingest_router.clone(), - )) + )).boxed() .or(es_compat_index_bulk_handler(ingest_service, ingest_router)) .or(es_compat_index_search_handler(search_service.clone())) .or(es_compat_index_count_handler(search_service.clone())) @@ -74,14 +74,14 @@ pub fn elastic_api_handlers( .or(es_compat_index_multi_search_handler(search_service.clone())) .or(es_compat_index_field_capabilities_handler( search_service.clone(), - )) + )).boxed() .or(es_compat_index_stats_handler(metastore.clone())) .or(es_compat_delete_index_handler(index_service)) .or(es_compat_stats_handler(metastore.clone())) .or(es_compat_index_cat_indices_handler(metastore.clone())) .or(es_compat_cat_indices_handler(metastore.clone())) .or(es_compat_resolve_index_handler(metastore.clone())) - .recover(recover_fn) + .recover(recover_fn).boxed() // Register newly created handlers here. } diff --git a/quickwit/quickwit-serve/src/elasticsearch_api/rest_handler.rs b/quickwit/quickwit-serve/src/elasticsearch_api/rest_handler.rs index 4bca30add33..f59552a4abf 100644 --- a/quickwit/quickwit-serve/src/elasticsearch_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/elasticsearch_api/rest_handler.rs @@ -89,7 +89,7 @@ pub fn es_compat_cluster_info_handler( } })) }, - ) + ).boxed() } /// GET or POST _elastic/_search @@ -134,7 +134,7 @@ pub fn es_compat_delete_index_handler( elastic_delete_index_filter() .and(with_arg(index_service)) .then(es_compat_delete_index) - .map(|result| make_elastic_api_response(result, BodyFormat::default())) + .map(|result| make_elastic_api_response(result, BodyFormat::default())).boxed() } /// GET _elastic/_stats @@ -145,7 +145,7 @@ pub fn es_compat_stats_handler( .and(with_arg(metastore_service)) .then(es_compat_stats) .map(|result| make_elastic_api_response(result, BodyFormat::default())) - .recover(recover_fn) + .recover(recover_fn).boxed() } /// GET _elastic/{index}/_stats @@ -156,7 +156,7 @@ pub fn es_compat_index_stats_handler( .and(with_arg(metastore_service)) .then(es_compat_index_stats) .map(|result| make_elastic_api_response(result, BodyFormat::default())) - .recover(recover_fn) + .recover(recover_fn).boxed() } /// GET _elastic/_cat/indices @@ -167,7 +167,7 @@ pub fn es_compat_cat_indices_handler( .and(with_arg(metastore_service)) .then(es_compat_cat_indices) .map(|result| make_elastic_api_response(result, BodyFormat::default())) - .recover(recover_fn) + .recover(recover_fn).boxed() } /// GET _elastic/_cat/indices/{index} @@ -178,7 +178,7 @@ pub fn es_compat_index_cat_indices_handler( .and(with_arg(metastore_service)) .then(es_compat_index_cat_indices) .map(|result| make_elastic_api_response(result, BodyFormat::default())) - .recover(recover_fn) + .recover(recover_fn).boxed() } /// GET _elastic/_resolve/index/{index} @@ -188,7 +188,7 @@ pub fn es_compat_resolve_index_handler( elastic_resolve_index_filter() .and(with_arg(metastore_service)) .then(es_compat_resolve_index) - .map(|result| make_elastic_api_response(result, BodyFormat::default())) + .map(|result| make_elastic_api_response(result, BodyFormat::default())).boxed() } /// GET or POST _elastic/{index}/_search @@ -199,7 +199,7 @@ pub fn es_compat_index_search_handler( .and(with_arg(search_service)) .then(es_compat_index_search) .map(|result| make_elastic_api_response(result, BodyFormat::default())) - .recover(recover_fn) + .recover(recover_fn).boxed() } /// GET or POST _elastic/{index}/_count @@ -210,7 +210,7 @@ pub fn es_compat_index_count_handler( .and(with_arg(search_service)) .then(es_compat_index_count) .map(|result| make_elastic_api_response(result, BodyFormat::default())) - .recover(recover_fn) + .recover(recover_fn).boxed() } /// POST _elastic/_msearch @@ -227,7 +227,7 @@ pub fn es_compat_index_multi_search_handler( }; RestApiResponse::new(&result, status_code, BodyFormat::default()) }) - .recover(recover_fn) + .recover(recover_fn).boxed() } /// GET or POST _elastic/_search/scroll @@ -238,7 +238,7 @@ pub fn es_compat_scroll_handler( .and(with_arg(search_service)) .then(es_scroll) .map(|result| make_elastic_api_response(result, BodyFormat::default())) - .recover(recover_fn) + .recover(recover_fn).boxed() } fn build_request_for_es_api( diff --git a/quickwit/quickwit-serve/src/index_api/rest_handler.rs b/quickwit/quickwit-serve/src/index_api/rest_handler.rs index 832df922983..ad741c7e83f 100644 --- a/quickwit/quickwit-serve/src/index_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/index_api/rest_handler.rs @@ -89,28 +89,28 @@ pub fn index_management_handlers( node_config: Arc, ) -> impl Filter + Clone { // Indexes handlers. - get_index_metadata_handler(index_service.metastore()) - .or(list_indexes_metadata_handler(index_service.metastore())) - .or(create_index_handler(index_service.clone(), node_config)) - .or(update_index_handler(index_service.metastore())) - .or(clear_index_handler(index_service.clone())) - .or(delete_index_handler(index_service.clone())) + get_index_metadata_handler(index_service.metastore()).boxed() + .or(list_indexes_metadata_handler(index_service.metastore()).boxed()) + .or(create_index_handler(index_service.clone(), node_config).boxed()) + .or(update_index_handler(index_service.metastore()).boxed()) + .or(clear_index_handler(index_service.clone()).boxed()) + .or(delete_index_handler(index_service.clone()).boxed()) // Splits handlers - .or(list_splits_handler(index_service.metastore())) - .or(describe_index_handler(index_service.metastore())) - .or(mark_splits_for_deletion_handler(index_service.metastore())) + .or(list_splits_handler(index_service.metastore()).boxed()) + .or(describe_index_handler(index_service.metastore()).boxed()) + .or(mark_splits_for_deletion_handler(index_service.metastore()).boxed()) // Sources handlers. - .or(reset_source_checkpoint_handler(index_service.metastore())) - .or(toggle_source_handler(index_service.metastore())) - .or(create_source_handler(index_service.clone())) - .or(get_source_handler(index_service.metastore())) - .or(delete_source_handler(index_service.metastore())) - .or(get_source_shards_handler(index_service.metastore())) + .or(reset_source_checkpoint_handler(index_service.metastore()).boxed()) + .or(toggle_source_handler(index_service.metastore()).boxed()) + .or(create_source_handler(index_service.clone()).boxed()) + .or(get_source_handler(index_service.metastore()).boxed()) + .or(delete_source_handler(index_service.metastore()).boxed()) + .or(get_source_shards_handler(index_service.metastore()).boxed()) // Tokenizer handlers. - .or(analyze_request_handler()) + .or(analyze_request_handler().boxed()) // Parse query into query AST handler. - .or(parse_query_request_handler()) - .recover(recover_fn) + .or(parse_query_request_handler().boxed()) + .recover(recover_fn).boxed() } fn json_body( diff --git a/quickwit/quickwit-serve/src/indexing_api/rest_handler.rs b/quickwit/quickwit-serve/src/indexing_api/rest_handler.rs index 5f2bf9cf3a9..07729080559 100644 --- a/quickwit/quickwit-serve/src/indexing_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/indexing_api/rest_handler.rs @@ -61,5 +61,5 @@ pub fn indexing_get_handler( .then(indexing_endpoint) .and(extract_format_from_qs()) .map(into_rest_api_response) - .recover(recover_fn) + .recover(recover_fn).boxed() } diff --git a/quickwit/quickwit-serve/src/ingest_api/rest_handler.rs b/quickwit/quickwit-serve/src/ingest_api/rest_handler.rs index 713b361bbeb..2123b2d0384 100644 --- a/quickwit/quickwit-serve/src/ingest_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/ingest_api/rest_handler.rs @@ -71,7 +71,7 @@ pub(crate) fn ingest_api_handlers( ) -> impl Filter + Clone { ingest_handler(ingest_service.clone(), config.clone()) .or(tail_handler(ingest_service)) - .or(ingest_v2_handler(ingest_router, config)) + .or(ingest_v2_handler(ingest_router, config)).boxed() } fn ingest_filter( @@ -95,7 +95,7 @@ fn ingest_handler( ingest_filter(config) .and(with_arg(ingest_service)) .then(ingest) - .map(|result| into_rest_api_response(result, BodyFormat::default())) + .map(|result| into_rest_api_response(result, BodyFormat::default())).boxed() } fn ingest_v2_filter( @@ -120,7 +120,7 @@ fn ingest_v2_handler( .and(with_arg(ingest_router)) .then(ingest_v2) .and(with_arg(BodyFormat::default())) - .map(into_rest_api_response) + .map(into_rest_api_response).boxed() } async fn ingest_v2( @@ -222,7 +222,7 @@ pub fn tail_handler( .and(with_arg(ingest_service)) .then(tail_endpoint) .and(extract_format_from_qs()) - .map(into_rest_api_response) + .map(into_rest_api_response).boxed() } fn tail_filter() -> impl Filter + Clone { diff --git a/quickwit/quickwit-serve/src/jaeger_api/rest_handler.rs b/quickwit/quickwit-serve/src/jaeger_api/rest_handler.rs index 544c30afda4..ee271a723b8 100644 --- a/quickwit/quickwit-serve/src/jaeger_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/jaeger_api/rest_handler.rs @@ -67,7 +67,7 @@ pub(crate) fn jaeger_api_handlers( )) .or(jaeger_traces_search_handler(jaeger_service_opt.clone())) .or(jaeger_traces_handler(jaeger_service_opt.clone())) - .recover(recover_fn) + .recover(recover_fn).boxed() } fn jaeger_api_path_filter() -> impl Filter,), Error = Rejection> + Clone { diff --git a/quickwit/quickwit-serve/src/node_info_handler.rs b/quickwit/quickwit-serve/src/node_info_handler.rs index b1791be9d6f..35b3b1dc3c7 100644 --- a/quickwit/quickwit-serve/src/node_info_handler.rs +++ b/quickwit/quickwit-serve/src/node_info_handler.rs @@ -37,7 +37,7 @@ pub fn node_info_handler( ) -> impl Filter + Clone { node_version_handler(build_info, runtime_info) .or(node_config_handler(config)) - .recover(recover_fn) + .recover(recover_fn).boxed() } #[utoipa::path(get, tag = "Node Info", path = "/version")] diff --git a/quickwit/quickwit-serve/src/otlp_api/rest_handler.rs b/quickwit/quickwit-serve/src/otlp_api/rest_handler.rs index c393c665507..9b621a8ce92 100644 --- a/quickwit/quickwit-serve/src/otlp_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/otlp_api/rest_handler.rs @@ -55,7 +55,7 @@ pub(crate) fn otlp_ingest_api_handlers( otlp_default_logs_handler(otlp_logs_service.clone()) .or(otlp_default_traces_handler(otlp_traces_service.clone()).recover(recover_fn)) .or(otlp_logs_handler(otlp_logs_service).recover(recover_fn)) - .or(otlp_ingest_traces_handler(otlp_traces_service).recover(recover_fn)) + .or(otlp_ingest_traces_handler(otlp_traces_service).recover(recover_fn)).boxed() } /// Open Telemetry REST/Protobuf logs ingest endpoint. @@ -90,7 +90,7 @@ pub(crate) fn otlp_default_logs_handler( }, ) .and(with_arg(BodyFormat::default())) - .map(into_rest_api_response) + .map(into_rest_api_response).boxed() } /// Open Telemetry REST/Protobuf logs ingest endpoint. #[utoipa::path( @@ -115,7 +115,7 @@ pub(crate) fn otlp_logs_handler( .and(get_body_bytes()) .then(otlp_ingest_logs) .and(with_arg(BodyFormat::default())) - .map(into_rest_api_response) + .map(into_rest_api_response).boxed() } /// Open Telemetry REST/Protobuf traces ingest endpoint. @@ -150,7 +150,7 @@ pub(crate) fn otlp_default_traces_handler( }, ) .and(with_arg(BodyFormat::default())) - .map(into_rest_api_response) + .map(into_rest_api_response).boxed() } /// Open Telemetry REST/Protobuf traces ingest endpoint. #[utoipa::path( @@ -175,7 +175,7 @@ pub(crate) fn otlp_ingest_traces_handler( .and(get_body_bytes()) .then(otlp_ingest_traces) .and(with_arg(BodyFormat::default())) - .map(into_rest_api_response) + .map(into_rest_api_response).boxed() } #[derive(Debug, Clone, thiserror::Error, Serialize)] diff --git a/quickwit/quickwit-serve/src/rest.rs b/quickwit/quickwit-serve/src/rest.rs index 3c83c2d84f1..518472bbfb0 100644 --- a/quickwit/quickwit-serve/src/rest.rs +++ b/quickwit/quickwit-serve/src/rest.rs @@ -145,33 +145,33 @@ pub(crate) async fn start_rest_server( let api_doc = warp::path("openapi.json") .and(warp::get()) .map(|| warp::reply::json(&crate::openapi::build_docs())) - .recover(recover_fn); + .recover(recover_fn).boxed(); // `/health/*` routes. let health_check_routes = health_check_handlers( quickwit_services.cluster.clone(), quickwit_services.indexing_service_opt.clone(), quickwit_services.janitor_service_opt.clone(), - ); + ).boxed(); // `/metrics` route. let metrics_routes = warp::path("metrics") .and(warp::get()) .map(metrics_handler) - .recover(recover_fn); + .recover(recover_fn).boxed(); // `/api/developer/*` route. let developer_routes = developer_api_routes( quickwit_services.cluster.clone(), quickwit_services.env_filter_reload_fn.clone(), - ); + ).boxed(); // `/api/v1/*` routes. let api_v1_root_route = api_v1_routes(quickwit_services.clone()); let redirect_root_to_ui_route = warp::path::end() .and(warp::get()) .map(|| redirect(http::Uri::from_static("/ui/search"))) - .recover(recover_fn); + .recover(recover_fn).boxed(); let extra_headers = warp::reply::with::headers( quickwit_services @@ -242,7 +242,7 @@ fn search_routes( .or(search_plan_get_handler(search_service.clone())) .or(search_plan_post_handler(search_service.clone())) .or(search_stream_handler(search_service)) - .recover(recover_fn) + .recover(recover_fn).boxed() } fn api_v1_routes( @@ -258,38 +258,38 @@ fn api_v1_routes( quickwit_services.metastore_client.clone(), quickwit_services.index_manager.clone(), ) - .or(cluster_handler(quickwit_services.cluster.clone())) + .or(cluster_handler(quickwit_services.cluster.clone())).boxed() .or(node_info_handler( BuildInfo::get(), RuntimeInfo::get(), quickwit_services.node_config.clone(), - )) + )).boxed() .or(indexing_get_handler( quickwit_services.indexing_service_opt.clone(), - )) - .or(search_routes(quickwit_services.search_service.clone())) + )).boxed() + .or(search_routes(quickwit_services.search_service.clone())).boxed() .or(ingest_api_handlers( quickwit_services.ingest_router_service.clone(), quickwit_services.ingest_service.clone(), quickwit_services.node_config.ingest_api_config.clone(), - )) + )).boxed() .or(otlp_ingest_api_handlers( quickwit_services.otlp_logs_service_opt.clone(), quickwit_services.otlp_traces_service_opt.clone(), - )) + )).boxed() .or(index_management_handlers( quickwit_services.index_manager.clone(), quickwit_services.node_config.clone(), - )) + )).boxed() .or(delete_task_api_handlers( quickwit_services.metastore_client.clone(), - )) + )).boxed() .or(jaeger_api_handlers( quickwit_services.jaeger_service_opt.clone(), - )) + )).boxed() .or(index_template_api_handlers( quickwit_services.metastore_client.clone(), - )), + )).boxed(), ) } diff --git a/quickwit/quickwit-serve/src/template_api/rest_handler.rs b/quickwit/quickwit-serve/src/template_api/rest_handler.rs index fca22b2b4a7..9fb2b48ec13 100644 --- a/quickwit/quickwit-serve/src/template_api/rest_handler.rs +++ b/quickwit/quickwit-serve/src/template_api/rest_handler.rs @@ -56,7 +56,7 @@ pub(crate) fn index_template_api_handlers( .or(update_index_template_handler(metastore.clone())) .or(delete_index_template_handler(metastore.clone())) .or(list_index_templates_handler(metastore.clone())) - .recover(recover_fn) + .recover(recover_fn).boxed() } fn create_index_template_handler( diff --git a/quickwit/quickwit-serve/src/ui_handler.rs b/quickwit/quickwit-serve/src/ui_handler.rs index 2c78712381c..d210ea24347 100644 --- a/quickwit/quickwit-serve/src/ui_handler.rs +++ b/quickwit/quickwit-serve/src/ui_handler.rs @@ -42,7 +42,7 @@ pub fn ui_handler() -> impl Filter Result {