bug(server): panic when making HEAD request #124

Closed
opened 2026-06-21 00:34:17 +00:00 by treadful · 1 comment
Owner

Did a HEAD request earlier and that apparently caused a server crash.

Command:

curl -I http://localhost:8000/~470f505/index.md

Here's the trace:

thread 'tokio-rt-worker' (892915) panicked at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/path_params.rs:43:17:                                                                                                                               
only one wildcard param is allowed and it must be the last one.                                                                                   
stack backtrace:                                                                                                                                  
   0: __rustc::rust_begin_unwind                                                                                                                  
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panicking.rs:678:5                                                
   1: core::panicking::panic_fmt                                                                                                                  
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/panicking.rs:80:14                                               
   2: <salvo_core::routing::path_params::PathParams>::insert                                                                                      
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/path_params.rs:43:17            
   3: <salvo_core::routing::filters::path::NamedWisp as salvo_core::routing::filters::path::PathWisp>::detect                                     
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/filters/path.rs:518:30          
   4: <salvo_core::routing::filters::path::WispKind as salvo_core::routing::filters::path::PathWisp>::detect                                      
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/filters/path.rs:89:39
   5: <salvo_core::routing::filters::path::PathFilter>::detect                                                                                    
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/filters/path.rs:1069:19         
   6: <salvo_core::routing::filters::path::PathFilter as salvo_core::routing::filters::Filter>::filter::{closure#0}                               
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/filters/path.rs:1021:14         
   7: <core::pin::Pin<alloc::boxed::Box<dyn core::future::future::Future<Output = bool> + core::marker::Send>> as core::future::future::Future>::p
oll                                                                                                                                               
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:133:9                                           
   8: <salvo_core::routing::router::Router>::detect::{closure#0}::{closure#0}                                                                     
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/router.rs:90:52
   9: <core::pin::Pin<alloc::boxed::Box<<salvo_core::routing::router::Router>::detect::{closure#0}::{closure#0}>> as core::future::future::Future>
::poll                                                                                                                                            
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:133:9                                           
  10: <salvo_core::routing::router::Router>::detect::{closure#0}                                                                                  
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/router.rs:124:10                
  11: <salvo_core::routing::router::Router>::detect::{closure#0}::{closure#0}                                                                     
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/router.rs:99:69                 
  12: <core::pin::Pin<alloc::boxed::Box<<salvo_core::routing::router::Router>::detect::{closure#0}::{closure#0}>> as core::future::future::Future>
::poll                                                                                                                                            
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:133:9                                           
  13: <salvo_core::routing::router::Router>::detect::{closure#0}                                                                                  
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/router.rs:124:10                
  14: <salvo_core::service::HyperHandler>::handle::{closure#0}                                                                                    
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/service.rs:226:72                       
  15: <salvo_core::service::HyperHandler as hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>>::call::{clo
sure#3}                                                                                                                                           
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/service.rs:392:43                       
  16: <core::pin::Pin<alloc::boxed::Box<dyn core::future::future::Future<Output = core::result::Result<http::response::Response<salvo_core::http::
body::res::ResBody>, hyper::error::Error>> + core::marker::Send>> as core::future::future::Future>::poll                                          
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:133:9                                           
  17: <hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incoming> as hyper::proto::h1::dispatch::Dispa
tch>::poll_msg                                                                                                                                    
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:597:48    
  18: <hyper::proto::h1::dispatch::Dispatcher<hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incomin
g>, salvo_core::http::body::res::ResBody, hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream::straight::Strai
ghtStream<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h1::role::Server>>::poll_write           
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:357:72
  19: <hyper::proto::h1::dispatch::Dispatcher<hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incomin
g>, salvo_core::http::body::res::ResBody, hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream::straight::Strai
ghtStream<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h1::role::Server>>::poll_loop
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:174:36
  20: <hyper::proto::h1::dispatch::Dispatcher<hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incomin
g>, salvo_core::http::body::res::ResBody, hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream::straight::Strai
ghtStream<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h1::role::Server>>::poll_inner
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:150:21
  21: <hyper::proto::h1::dispatch::Dispatcher<hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incomin
g>, salvo_core::http::body::res::ResBody, hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream::straight::Strai
ghtStream<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h1::role::Server>>::poll_catch
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:128:33
22: <hyper::proto::h1::dispatch::Dispatcher<hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incomin
g>, salvo_core::http::body::res::ResBody, hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream::straight::Strai
ghtStream<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h1::role::Server> as core::future::future::Future>::poll
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:498:14
  23: <hyper::server::conn::http1::UpgradeableConnection<hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream::
straight::StraightStream<tokio::net::tcp::stream::TcpStream>>>, salvo_core::service::HyperHandler> as core::future::future::Future>::poll
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/server/conn/http1.rs:552:51
  24: <&mut hyper::server::conn::http1::UpgradeableConnection<hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::str
eam::straight::StraightStream<tokio::net::tcp::stream::TcpStream>>>, salvo_core::service::HyperHandler> as core::future::future::Future>::poll
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:121:9
  25: <salvo_core::conn::proto::HttpBuilder>::serve_connection::<salvo_core::conn::stream::straight::StraightStream<tokio::net::tcp::stream::TcpSt
ream>, salvo_core::service::HyperHandler, salvo_core::http::body::res::ResBody>::{closure#0}::{closure#5}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/macros/select.rs:705:49
  26: <core::future::poll_fn::PollFn<<salvo_core::conn::proto::HttpBuilder>::serve_connection<salvo_core::conn::stream::straight::StraightStream<t
okio::net::tcp::stream::TcpStream>, salvo_core::service::HyperHandler, salvo_core::http::body::res::ResBody>::{closure#0}::{closure#5}> as core::f
uture::future::Future>::poll
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/poll_fn.rs:151:9
  27: <salvo_core::conn::proto::HttpBuilder>::serve_connection::<salvo_core::conn::stream::straight::StraightStream<tokio::net::tcp::stream::TcpSt
ream>, salvo_core::service::HyperHandler, salvo_core::http::body::res::ResBody>::{closure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/conn/proto.rs:132:29
  28: <salvo_core::conn::stream::straight::StraightStream<tokio::net::tcp::stream::TcpStream> as salvo_core::http::HttpConnection>::serve::{closur
e#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/conn/stream/straight.rs:50:14
  29: <salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve::<salvo_core::service::Service>::{closure#0}::{closure#2}::{clos
ure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/macros/select.rs:705:49
  30: <core::future::poll_fn::PollFn<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{c
losure#0}::{closure#2}::{closure#0}> as core::future::future::Future>::poll
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/poll_fn.rs:151:9
  31: <salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve::<salvo_core::service::Service>::{closure#0}::{closure#2}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/server.rs:285:37
  32: <core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>:
:{closure#0}::{closure#2}>> as core::future::future::Future>::poll
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:133:9
  33: <tokio::runtime::task::core::Core<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_ser
ve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::poll::{
closure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/core.rs:375:24
  34: <tokio::loom::std::unsafe_cell::UnsafeCell<tokio::runtime::task::core::Stage<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<sa
lvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>>>>::with_mut::<core::task::poll::Poll<()>,
 <tokio::runtime::task::core::Core<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<sa
lvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::poll::{closu
re#0}>
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/loom/std/unsafe_cell.rs:16:9
  35: <tokio::runtime::task::core::Core<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_ser
ve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::poll
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/core.rs:364:30
  36: tokio::runtime::task::harness::poll_future::<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor
>>::try_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>
>::{closure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:535:30
  37: <core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<core::pin::Pin<alloc::boxed::Box<<salvo_core::server:
:Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime
::scheduler::multi_thread::handle::Handle>>::{closure#0}> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/panic/unwind_safe.rs:275:9
  38: std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<core::pin::Pin
<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{closure#0}::{closur
e#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::{closure#0}>, core::task::poll::Poll<()>>
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panicking.rs:575:43
  39: __rust_try
  40: std::panicking::catch_unwind::<core::task::poll::Poll<()>, core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_fu
ture<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{
closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::{closure#0}>>
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panicking.rs:543:19
  41: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<core::pin::Pin<alloc::boxed
::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc
::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::{closure#0}>, core::task::poll::Poll<()>>
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panic.rs:359:14
  42: tokio::runtime::task::harness::poll_future::<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor
>>::try_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>
>
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:523:18
  43: <tokio::runtime::task::harness::Harness<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::t
ry_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::p
oll_inner
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:210:27
  44: <tokio::runtime::task::harness::Harness<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::t
ry_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::p
oll
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:155:20
  45: tokio::runtime::task::raw::poll::<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_ser
ve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/raw.rs:337:13
  46: <tokio::runtime::task::raw::RawTask>::poll
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/raw.rs:267:18
  47: <tokio::runtime::task::LocalNotified<alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::run
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/mod.rs:510:13
  48: <tokio::runtime::scheduler::multi_thread::worker::Context>::run_task::{closure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:684:
18
  49: tokio::task::coop::with_budget::<core::result::Result<alloc::boxed::Box<tokio::runtime::scheduler::multi_thread::worker::Core>, ()>, <tokio:
:runtime::scheduler::multi_thread::worker::Context>::run_task::{closure#0}>
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/task/coop/mod.rs:167:5
  50: tokio::task::coop::budget::<core::result::Result<alloc::boxed::Box<tokio::runtime::scheduler::multi_thread::worker::Core>, ()>, <tokio::runt
ime::scheduler::multi_thread::worker::Context>::run_task::{closure#0}>
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/task/coop/mod.rs:133:5
  51: <tokio::runtime::scheduler::multi_thread::worker::Context>::run_task
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:675:
9
  52: <tokio::runtime::scheduler::multi_thread::worker::Context>::run
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:585:
29
  53: tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:550:
24
  54: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<tokio::runtime::scheduler::multi_thread::worker::run::{
closure#0}::{closure#0}, ()>
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context/scoped.rs:40:9
  55: tokio::runtime::context::set_scheduler::<(), tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}>::{closure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context.rs:181:38
  56: <std::thread::local::LocalKey<tokio::runtime::context::Context>>::try_with::<tokio::runtime::context::set_scheduler<(), tokio::runtime::sche
duler::multi_thread::worker::run::{closure#0}::{closure#0}>::{closure#0}, ()>
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/thread/local.rs:463:12
  57: <std::thread::local::LocalKey<tokio::runtime::context::Context>>::with::<tokio::runtime::context::set_scheduler<(), tokio::runtime::schedule
r::multi_thread::worker::run::{closure#0}::{closure#0}>::{closure#0}, ()>
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/thread/local.rs:427:20
  58: tokio::runtime::context::set_scheduler::<(), tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}>
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context.rs:181:17
  59: tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:545:
9
  60: tokio::runtime::context::runtime::enter_runtime::<tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}, ()>
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context/runtime.rs:65:16
  61: tokio::runtime::scheduler::multi_thread::worker::run
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:537:
5
  62: <tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:503:
45
  63: <tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}> as core::futur
e::future::Future>::poll
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/blocking/task.rs:42:21
  64: <tokio::runtime::task::core::Core<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::la
unch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>>::poll::{closure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/core.rs:375:24
  65: <tokio::loom::std::unsafe_cell::UnsafeCell<tokio::runtime::task::core::Stage<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::s
cheduler::multi_thread::worker::Launch>::launch::{closure#0}>>>>::with_mut::<core::task::poll::Poll<()>, <tokio::runtime::task::core::Core<tokio::
runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio::runtime::blocking::s
chedule::BlockingSchedule>>::poll::{closure#0}>
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/loom/std/unsafe_cell.rs:16:9
  66: <tokio::runtime::task::core::Core<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::la
unch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>>::poll
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/core.rs:364:30
  67: tokio::runtime::task::harness::poll_future::<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::
Launch>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>::{closure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:535:30
  68: <core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<tokio::runtime::blocking::task::BlockingTask<<tokio::
runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>::{closure#0}> as co
re::ops::function::FnOnce<()>>::call_once
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/panic/unwind_safe.rs:275:9
  69: std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<tokio::runtime
::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio::runtime::blocking::schedule
::BlockingSchedule>::{closure#0}>, core::task::poll::Poll<()>>
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panicking.rs:575:43
  70: __rust_try
  71: std::panicking::catch_unwind::<core::task::poll::Poll<()>, core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_fu
ture<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio::runtime:
:blocking::schedule::BlockingSchedule>::{closure#0}>>
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panicking.rs:543:19
  72: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<tokio::runtime::blocking::t
ask::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSch
edule>::{closure#0}>, core::task::poll::Poll<()>>
             at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panic.rs:359:14
  73: tokio::runtime::task::harness::poll_future::<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::
Launch>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:523:18
  74: <tokio::runtime::task::harness::Harness<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launc
h>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>>::poll_inner
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:210:27
  75: <tokio::runtime::task::harness::Harness<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launc
h>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>>::poll
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:155:20
  76: tokio::runtime::task::raw::poll::<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::la
unch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/raw.rs:337:13
  77: <tokio::runtime::task::raw::RawTask>::poll
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/raw.rs:267:18
  78: <tokio::runtime::task::UnownedTask<tokio::runtime::blocking::schedule::BlockingSchedule>>::run
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/mod.rs:547:13
  79: <tokio::runtime::blocking::pool::Task>::run
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/blocking/pool.rs:161:19
  80: <tokio::runtime::blocking::pool::Inner>::run
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/blocking/pool.rs:518:22
  81: <tokio::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}
             at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/blocking/pool.rs:474:47
Did a HEAD request earlier and that apparently caused a server crash. Command: ``` curl -I http://localhost:8000/~470f505/index.md ``` Here's the trace: ``` thread 'tokio-rt-worker' (892915) panicked at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/path_params.rs:43:17: only one wildcard param is allowed and it must be the last one. stack backtrace: 0: __rustc::rust_begin_unwind at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panicking.rs:678:5 1: core::panicking::panic_fmt at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/panicking.rs:80:14 2: <salvo_core::routing::path_params::PathParams>::insert at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/path_params.rs:43:17 3: <salvo_core::routing::filters::path::NamedWisp as salvo_core::routing::filters::path::PathWisp>::detect at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/filters/path.rs:518:30 4: <salvo_core::routing::filters::path::WispKind as salvo_core::routing::filters::path::PathWisp>::detect at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/filters/path.rs:89:39 5: <salvo_core::routing::filters::path::PathFilter>::detect at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/filters/path.rs:1069:19 6: <salvo_core::routing::filters::path::PathFilter as salvo_core::routing::filters::Filter>::filter::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/filters/path.rs:1021:14 7: <core::pin::Pin<alloc::boxed::Box<dyn core::future::future::Future<Output = bool> + core::marker::Send>> as core::future::future::Future>::p oll at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:133:9 8: <salvo_core::routing::router::Router>::detect::{closure#0}::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/router.rs:90:52 9: <core::pin::Pin<alloc::boxed::Box<<salvo_core::routing::router::Router>::detect::{closure#0}::{closure#0}>> as core::future::future::Future> ::poll at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:133:9 10: <salvo_core::routing::router::Router>::detect::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/router.rs:124:10 11: <salvo_core::routing::router::Router>::detect::{closure#0}::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/router.rs:99:69 12: <core::pin::Pin<alloc::boxed::Box<<salvo_core::routing::router::Router>::detect::{closure#0}::{closure#0}>> as core::future::future::Future> ::poll at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:133:9 13: <salvo_core::routing::router::Router>::detect::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/routing/router.rs:124:10 14: <salvo_core::service::HyperHandler>::handle::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/service.rs:226:72 15: <salvo_core::service::HyperHandler as hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>>::call::{clo sure#3} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/service.rs:392:43 16: <core::pin::Pin<alloc::boxed::Box<dyn core::future::future::Future<Output = core::result::Result<http::response::Response<salvo_core::http:: body::res::ResBody>, hyper::error::Error>> + core::marker::Send>> as core::future::future::Future>::poll at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:133:9 17: <hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incoming> as hyper::proto::h1::dispatch::Dispa tch>::poll_msg at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:597:48 18: <hyper::proto::h1::dispatch::Dispatcher<hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incomin g>, salvo_core::http::body::res::ResBody, hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream::straight::Strai ghtStream<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h1::role::Server>>::poll_write at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:357:72 19: <hyper::proto::h1::dispatch::Dispatcher<hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incomin g>, salvo_core::http::body::res::ResBody, hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream::straight::Strai ghtStream<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h1::role::Server>>::poll_loop at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:174:36 20: <hyper::proto::h1::dispatch::Dispatcher<hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incomin g>, salvo_core::http::body::res::ResBody, hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream::straight::Strai ghtStream<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h1::role::Server>>::poll_inner at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:150:21 21: <hyper::proto::h1::dispatch::Dispatcher<hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incomin g>, salvo_core::http::body::res::ResBody, hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream::straight::Strai ghtStream<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h1::role::Server>>::poll_catch at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:128:33 22: <hyper::proto::h1::dispatch::Dispatcher<hyper::proto::h1::dispatch::Server<salvo_core::service::HyperHandler, hyper::body::incoming::Incomin g>, salvo_core::http::body::res::ResBody, hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream::straight::Strai ghtStream<tokio::net::tcp::stream::TcpStream>>>, hyper::proto::h1::role::Server> as core::future::future::Future>::poll at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/proto/h1/dispatch.rs:498:14 23: <hyper::server::conn::http1::UpgradeableConnection<hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::stream:: straight::StraightStream<tokio::net::tcp::stream::TcpStream>>>, salvo_core::service::HyperHandler> as core::future::future::Future>::poll at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hyper-1.10.1/src/server/conn/http1.rs:552:51 24: <&mut hyper::server::conn::http1::UpgradeableConnection<hyper_util::rt::tokio::TokioIo<salvo_core::conn::proto::Rewind<salvo_core::conn::str eam::straight::StraightStream<tokio::net::tcp::stream::TcpStream>>>, salvo_core::service::HyperHandler> as core::future::future::Future>::poll at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:121:9 25: <salvo_core::conn::proto::HttpBuilder>::serve_connection::<salvo_core::conn::stream::straight::StraightStream<tokio::net::tcp::stream::TcpSt ream>, salvo_core::service::HyperHandler, salvo_core::http::body::res::ResBody>::{closure#0}::{closure#5} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/macros/select.rs:705:49 26: <core::future::poll_fn::PollFn<<salvo_core::conn::proto::HttpBuilder>::serve_connection<salvo_core::conn::stream::straight::StraightStream<t okio::net::tcp::stream::TcpStream>, salvo_core::service::HyperHandler, salvo_core::http::body::res::ResBody>::{closure#0}::{closure#5}> as core::f uture::future::Future>::poll at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/poll_fn.rs:151:9 27: <salvo_core::conn::proto::HttpBuilder>::serve_connection::<salvo_core::conn::stream::straight::StraightStream<tokio::net::tcp::stream::TcpSt ream>, salvo_core::service::HyperHandler, salvo_core::http::body::res::ResBody>::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/conn/proto.rs:132:29 28: <salvo_core::conn::stream::straight::StraightStream<tokio::net::tcp::stream::TcpStream> as salvo_core::http::HttpConnection>::serve::{closur e#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/conn/stream/straight.rs:50:14 29: <salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve::<salvo_core::service::Service>::{closure#0}::{closure#2}::{clos ure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/macros/select.rs:705:49 30: <core::future::poll_fn::PollFn<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{c losure#0}::{closure#2}::{closure#0}> as core::future::future::Future>::poll at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/poll_fn.rs:151:9 31: <salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve::<salvo_core::service::Service>::{closure#0}::{closure#2} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salvo_core-0.80.0/src/server.rs:285:37 32: <core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>: :{closure#0}::{closure#2}>> as core::future::future::Future>::poll at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/future/future.rs:133:9 33: <tokio::runtime::task::core::Core<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_ser ve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::poll::{ closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/core.rs:375:24 34: <tokio::loom::std::unsafe_cell::UnsafeCell<tokio::runtime::task::core::Stage<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<sa lvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>>>>::with_mut::<core::task::poll::Poll<()>, <tokio::runtime::task::core::Core<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<sa lvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::poll::{closu re#0}> at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/loom/std/unsafe_cell.rs:16:9 35: <tokio::runtime::task::core::Core<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_ser ve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::poll at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/core.rs:364:30 36: tokio::runtime::task::harness::poll_future::<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor >>::try_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle> >::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:535:30 37: <core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<core::pin::Pin<alloc::boxed::Box<<salvo_core::server: :Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime ::scheduler::multi_thread::handle::Handle>>::{closure#0}> as core::ops::function::FnOnce<()>>::call_once at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/panic/unwind_safe.rs:275:9 38: std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<core::pin::Pin <alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{closure#0}::{closur e#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::{closure#0}>, core::task::poll::Poll<()>> at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panicking.rs:575:43 39: __rust_try 40: std::panicking::catch_unwind::<core::task::poll::Poll<()>, core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_fu ture<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{ closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::{closure#0}>> at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panicking.rs:543:19 41: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<core::pin::Pin<alloc::boxed ::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc ::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>::{closure#0}>, core::task::poll::Poll<()>> at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panic.rs:359:14 42: tokio::runtime::task::harness::poll_future::<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor >>::try_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle> > at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:523:18 43: <tokio::runtime::task::harness::Harness<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::t ry_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::p oll_inner at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:210:27 44: <tokio::runtime::task::harness::Harness<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::t ry_serve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::p oll at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:155:20 45: tokio::runtime::task::raw::poll::<core::pin::Pin<alloc::boxed::Box<<salvo_core::server::Server<salvo_core::conn::tcp::TcpAcceptor>>::try_ser ve<salvo_core::service::Service>::{closure#0}::{closure#2}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>> at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/raw.rs:337:13 46: <tokio::runtime::task::raw::RawTask>::poll at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/raw.rs:267:18 47: <tokio::runtime::task::LocalNotified<alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::run at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/mod.rs:510:13 48: <tokio::runtime::scheduler::multi_thread::worker::Context>::run_task::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:684: 18 49: tokio::task::coop::with_budget::<core::result::Result<alloc::boxed::Box<tokio::runtime::scheduler::multi_thread::worker::Core>, ()>, <tokio: :runtime::scheduler::multi_thread::worker::Context>::run_task::{closure#0}> at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/task/coop/mod.rs:167:5 50: tokio::task::coop::budget::<core::result::Result<alloc::boxed::Box<tokio::runtime::scheduler::multi_thread::worker::Core>, ()>, <tokio::runt ime::scheduler::multi_thread::worker::Context>::run_task::{closure#0}> at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/task/coop/mod.rs:133:5 51: <tokio::runtime::scheduler::multi_thread::worker::Context>::run_task at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:675: 9 52: <tokio::runtime::scheduler::multi_thread::worker::Context>::run at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:585: 29 53: tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:550: 24 54: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<tokio::runtime::scheduler::multi_thread::worker::run::{ closure#0}::{closure#0}, ()> at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context/scoped.rs:40:9 55: tokio::runtime::context::set_scheduler::<(), tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}>::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context.rs:181:38 56: <std::thread::local::LocalKey<tokio::runtime::context::Context>>::try_with::<tokio::runtime::context::set_scheduler<(), tokio::runtime::sche duler::multi_thread::worker::run::{closure#0}::{closure#0}>::{closure#0}, ()> at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/thread/local.rs:463:12 57: <std::thread::local::LocalKey<tokio::runtime::context::Context>>::with::<tokio::runtime::context::set_scheduler<(), tokio::runtime::schedule r::multi_thread::worker::run::{closure#0}::{closure#0}>::{closure#0}, ()> at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/thread/local.rs:427:20 58: tokio::runtime::context::set_scheduler::<(), tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}> at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context.rs:181:17 59: tokio::runtime::scheduler::multi_thread::worker::run::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:545: 9 60: tokio::runtime::context::runtime::enter_runtime::<tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}, ()> at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/context/runtime.rs:65:16 61: tokio::runtime::scheduler::multi_thread::worker::run at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:537: 5 62: <tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/scheduler/multi_thread/worker.rs:503: 45 63: <tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}> as core::futur e::future::Future>::poll at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/blocking/task.rs:42:21 64: <tokio::runtime::task::core::Core<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::la unch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>>::poll::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/core.rs:375:24 65: <tokio::loom::std::unsafe_cell::UnsafeCell<tokio::runtime::task::core::Stage<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::s cheduler::multi_thread::worker::Launch>::launch::{closure#0}>>>>::with_mut::<core::task::poll::Poll<()>, <tokio::runtime::task::core::Core<tokio:: runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio::runtime::blocking::s chedule::BlockingSchedule>>::poll::{closure#0}> at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/loom/std/unsafe_cell.rs:16:9 66: <tokio::runtime::task::core::Core<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::la unch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>>::poll at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/core.rs:364:30 67: tokio::runtime::task::harness::poll_future::<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker:: Launch>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:535:30 68: <core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<tokio::runtime::blocking::task::BlockingTask<<tokio:: runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>::{closure#0}> as co re::ops::function::FnOnce<()>>::call_once at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/core/src/panic/unwind_safe.rs:275:9 69: std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<tokio::runtime ::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio::runtime::blocking::schedule ::BlockingSchedule>::{closure#0}>, core::task::poll::Poll<()>> at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panicking.rs:575:43 70: __rust_try 71: std::panicking::catch_unwind::<core::task::poll::Poll<()>, core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_fu ture<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio::runtime: :blocking::schedule::BlockingSchedule>::{closure#0}>> at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panicking.rs:543:19 72: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<tokio::runtime::task::harness::poll_future<tokio::runtime::blocking::t ask::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSch edule>::{closure#0}>, core::task::poll::Poll<()>> at /rustc/f20a92ec01483dc5c58e90e246f266bdad822d86/library/std/src/panic.rs:359:14 73: tokio::runtime::task::harness::poll_future::<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker:: Launch>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule> at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:523:18 74: <tokio::runtime::task::harness::Harness<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launc h>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>>::poll_inner at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:210:27 75: <tokio::runtime::task::harness::Harness<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launc h>::launch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule>>::poll at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/harness.rs:155:20 76: tokio::runtime::task::raw::poll::<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::la unch::{closure#0}>, tokio::runtime::blocking::schedule::BlockingSchedule> at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/raw.rs:337:13 77: <tokio::runtime::task::raw::RawTask>::poll at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/raw.rs:267:18 78: <tokio::runtime::task::UnownedTask<tokio::runtime::blocking::schedule::BlockingSchedule>>::run at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/task/mod.rs:547:13 79: <tokio::runtime::blocking::pool::Task>::run at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/blocking/pool.rs:161:19 80: <tokio::runtime::blocking::pool::Inner>::run at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/blocking/pool.rs:518:22 81: <tokio::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0} at /home/treadful/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/runtime/blocking/pool.rs:474:47 ```
treadful added this to the 1.0 milestone 2026-06-24 04:08:26 +00:00
Author
Owner

Reported upstream here: https://github.com/salvo-rs/salvo/issues/1612

Fixed upstream here: https://github.com/salvo-rs/salvo/pull/1613

Unclear when a release will happen. Last one was April 30.

Reported upstream here: https://github.com/salvo-rs/salvo/issues/1612 Fixed upstream here: https://github.com/salvo-rs/salvo/pull/1613 Unclear when a release will happen. Last one was April 30.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
treadful/jot#124
No description provided.