Skip to content

Commit 608dd81

Browse files
committed
fqeat(api): catch internal panic
1 parent ad33e26 commit 608dd81

3 files changed

Lines changed: 6 additions & 1 deletion

File tree

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

netmito/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ time = { version = "0.3.44", features = ["serde-human-readable"] }
6969
tokio = { workspace = true }
7070
tokio-tar = "0.3.1"
7171
tokio-util = { version = "0.7.16", features = ["rt"] }
72-
tower-http = { version = "0.6.6", features = ["cors"] }
72+
tower-http = { version = "0.6.6", features = ["cors", "catch-panic"] }
7373
tracing = { workspace = true }
7474
tracing-appender = "0.2.3"
7575
tracing-subscriber = { workspace = true }

netmito/src/api/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ use axum::{
2424
use http_body_util::BodyExt;
2525
use serde_json::json;
2626
use tokio_util::sync::CancellationToken;
27+
use tower_http::catch_panic::CatchPanicLayer;
2728
use tower_http::cors::CorsLayer;
2829

2930
use crate::{
@@ -63,6 +64,7 @@ pub fn router(st: InfraPool, cancel_token: CancellationToken) -> Router {
6364
.nest("/tasks", tasks::tasks_router(st.clone()))
6465
.with_state(st)
6566
.layer(CorsLayer::permissive())
67+
.layer(CatchPanicLayer::new())
6668
}
6769
#[cfg(feature = "debugging")]
6870
{
@@ -93,6 +95,7 @@ pub fn router(st: InfraPool, cancel_token: CancellationToken) -> Router {
9395
.nest("/tasks", tasks::tasks_router(st.clone()))
9496
.with_state(st)
9597
.layer(CorsLayer::permissive())
98+
.layer(CatchPanicLayer::new())
9699
.layer(middleware::from_fn(print_request_addr))
97100
.layer(middleware::from_fn(print_request_response))
98101
}

0 commit comments

Comments
 (0)