timeout-tracing 0.1.0

Returns stack and span trace when the future hits a timeout
Documentation
---
source: src/tests/sqlx.rs
expression: result
---
Err(
    TimeoutElapsed {
        active_traces: [
            StackAndSpanTrace {
                stack_trace: Backtrace [
                    { fn: "timeout_tracing::trace::StackAndSpanTrace::capture", file: "./src/trace.rs", line: [NNN] },
                    { fn: "<timeout_tracing::trace::DefaultTraceCapturer as timeout_tracing::trace::CaptureTrace>::capture", file: "./src/trace.rs", line: [NNN] },
                    { fn: "timeout_tracing::waker::TracingTimeoutWaker<C>::clone", file: "./src/waker.rs", line: [NNN] },
                    { fn: "timeout_tracing::waker::TracingTimeoutWaker<C>::raw_clone", file: "./src/waker.rs", line: [NNN] },
                    { fn: "tokio::runtime::io::scheduled_io::ScheduledIo::poll_readiness", file: "[crates]/tokio-[ver]/src/runtime/io/scheduled_io.rs", line: [NNN] },
                    { fn: "tokio::runtime::io::registration::Registration::poll_ready", file: "[crates]/tokio-[ver]/src/runtime/io/registration.rs", line: [NNN] },
                    { fn: "tokio::runtime::io::registration::Registration::poll_read_ready", file: "[crates]/tokio-[ver]/src/runtime/io/registration.rs", line: [NNN] },
                    { fn: "tokio::net::tcp::stream::TcpStream::poll_read_ready", file: "[crates]/tokio-[ver]/src/net/tcp/stream.rs", line: [NNN] },
                    { fn: "sqlx_core::rt::rt_tokio::socket::<impl sqlx_core::net::socket::Socket for tokio::net::tcp::stream::TcpStream>::poll_read_ready", file: "[crates]/sqlx-core-[ver]/src/rt/rt_tokio/socket.rs", line: [NNN] },
                    { fn: "<alloc::boxed::Box<S> as sqlx_core::net::socket::Socket>::poll_read_ready", file: "[crates]/sqlx-core-[ver]/src/net/socket/mod.rs", line: [NNN] },
                    { fn: "<sqlx_core::net::socket::Read<S,B> as core::future::future::Future>::poll", file: "[crates]/sqlx-core-[ver]/src/net/socket/mod.rs", line: [NNN] },
                    { fn: "sqlx_core::net::socket::buffered::ReadBuffer::read::{{closure}}", file: "[crates]/sqlx-core-[ver]/src/net/socket/buffered.rs", line: [NNN] },
                    { fn: "sqlx_core::net::socket::buffered::BufferedSocket<S>::try_read::{{closure}}", file: "[crates]/sqlx-core-[ver]/src/net/socket/buffered.rs", line: [NNN] },
                    { fn: "sqlx_postgres::connection::stream::PgStream::recv_unchecked::{{closure}}", file: "[crates]/sqlx-postgres-[ver]/src/connection/stream.rs", line: [NNN] },
                    { fn: "sqlx_postgres::connection::stream::PgStream::recv::{{closure}}", file: "[crates]/sqlx-postgres-[ver]/src/connection/stream.rs", line: [NNN] },
                    { fn: "sqlx_postgres::connection::executor::<impl sqlx_postgres::connection::PgConnection>::run::{{closure}}::{{closure}}::{{closure}}", file: "[crates]/sqlx-postgres-[ver]/src/connection/executor.rs", line: [NNN] },
                    { fn: "<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll", file: "[crates]/tracing-[ver]/src/instrument.rs", line: [NNN] },
                    { fn: "<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll", file: "[crates]/futures-util-[ver]/src/future/future/fuse.rs", line: [NNN] },
                    { fn: "futures_util::future::future::FutureExt::poll_unpin", file: "[crates]/futures-util-[ver]/src/future/future/mod.rs", line: [NNN] },
                    { fn: "<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next", file: "[crates]/sqlx-core-[ver]/src/ext/async_stream.rs", line: [NNN] },
                    { fn: "<core::pin::Pin<P> as futures_core::stream::Stream>::poll_next", file: "[crates]/futures-core-[ver]/src/stream.rs", line: [NNN] },
                    { fn: "<S as futures_core::stream::TryStream>::try_poll_next", file: "[crates]/futures-core-[ver]/src/stream.rs", line: [NNN] },
                    { fn: "futures_util::stream::try_stream::TryStreamExt::try_poll_next_unpin", file: "[crates]/futures-util-[ver]/src/stream/try_stream/mod.rs", line: [NNN] },
                    { fn: "<futures_util::stream::try_stream::try_next::TryNext<St> as core::future::future::Future>::poll", file: "[crates]/futures-util-[ver]/src/stream/try_stream/try_next.rs", line: [NNN] },
                    { fn: "sqlx_postgres::connection::executor::<impl sqlx_core::executor::Executor for &mut sqlx_postgres::connection::PgConnection>::fetch_many::{{closure}}::{{closure}}", file: "[crates]/sqlx-postgres-[ver]/src/connection/executor.rs", line: [NNN] },
                    { fn: "<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll", file: "[crates]/tracing-[ver]/src/instrument.rs", line: [NNN] },
                    { fn: "<futures_util::future::future::fuse::Fuse<Fut> as core::future::future::Future>::poll", file: "[crates]/futures-util-[ver]/src/future/future/fuse.rs", line: [NNN] },
                    { fn: "futures_util::future::future::FutureExt::poll_unpin", file: "[crates]/futures-util-[ver]/src/future/future/mod.rs", line: [NNN] },
                    { fn: "<sqlx_core::ext::async_stream::TryAsyncStream<T> as futures_core::stream::Stream>::poll_next", file: "[crates]/sqlx-core-[ver]/src/ext/async_stream.rs", line: [NNN] },
                    { fn: "<core::pin::Pin<P> as futures_core::stream::Stream>::poll_next", file: "[crates]/futures-core-[ver]/src/stream.rs", line: [NNN] },
                    { fn: "<futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next", file: "[crates]/futures-util-[ver]/src/stream/stream/map.rs", line: [NNN] },
                    { fn: "<core::pin::Pin<P> as futures_core::stream::Stream>::poll_next", file: "[crates]/futures-core-[ver]/src/stream.rs", line: [NNN] },
                    { fn: "<S as futures_core::stream::TryStream>::try_poll_next", file: "[crates]/futures-core-[ver]/src/stream.rs", line: [NNN] },
                    { fn: "<futures_util::stream::try_stream::try_filter_map::TryFilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next", file: "[crates]/futures-util-[ver]/src/stream/try_stream/try_filter_map.rs", line: [NNN] },
                    { fn: "<core::pin::Pin<P> as futures_core::stream::Stream>::poll_next", file: "[crates]/futures-core-[ver]/src/stream.rs", line: [NNN] },
                    { fn: "<S as futures_core::stream::TryStream>::try_poll_next", file: "[crates]/futures-core-[ver]/src/stream.rs", line: [NNN] },
                    { fn: "<futures_util::stream::try_stream::try_collect::TryCollect<St,C> as core::future::future::Future>::poll", file: "[crates]/futures-util-[ver]/src/stream/try_stream/try_collect.rs", line: [NNN] },
                    { fn: "sqlx_core::query_as::QueryAs<DB,O,A>::fetch_all::{{closure}}", file: "[crates]/sqlx-core-[ver]/src/query_as.rs", line: [NNN] },
                    { fn: "timeout_tracing::tests::sqlx::exec_query::{{closure}}::{{closure}}", file: "./src/tests/sqlx.rs", line: [NNN] },
                    { fn: "<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll", file: "[crates]/tracing-[ver]/src/instrument.rs", line: [NNN] },
                    { fn: "timeout_tracing::tests::sqlx::exec_query::{{closure}}", file: "./src/tests/sqlx.rs", line: [NNN] },
                    { fn: "timeout_tracing::tests::sqlx::do_sqlx::{{closure}}::{{closure}}", file: "./src/tests/sqlx.rs", line: [NNN] },
                    { fn: "<tracing::instrument::Instrumented<T> as core::future::future::Future>::poll", file: "[crates]/tracing-[ver]/src/instrument.rs", line: [NNN] },
                    { fn: "timeout_tracing::tests::sqlx::do_sqlx::{{closure}}", file: "./src/tests/sqlx.rs", line: [NNN] },
                    { fn: "<timeout_tracing::TimeoutFuture<C,Fut> as core::future::future::Future>::poll", file: "./src/lib.rs", line: [NNN] },
                    { fn: "timeout_tracing::tests::run_with_tracing::{{closure}}", file: "./src/tests/mod.rs", line: [NNN] },
                    { fn: "timeout_tracing::tests::sqlx::with_sqlx::{{closure}}::{{closure}}", file: "./src/tests/sqlx.rs", line: [NNN] },
                    { fn: "tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}", file: "[crates]/tokio-[ver]/src/runtime/scheduler/current_thread/mod.rs", line: [NNN] },
                    { fn: "tokio::task::coop::with_budget", file: "[crates]/tokio-[ver]/src/task/coop/mod.rs", line: [NNN] },
                    { fn: "tokio::task::coop::budget", file: "[crates]/tokio-[ver]/src/task/coop/mod.rs", line: [NNN] },
                    { fn: "tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}", file: "[crates]/tokio-[ver]/src/runtime/scheduler/current_thread/mod.rs", line: [NNN] },
                    { fn: "tokio::runtime::scheduler::current_thread::Context::enter", file: "[crates]/tokio-[ver]/src/runtime/scheduler/current_thread/mod.rs", line: [NNN] },
                    { fn: "tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}", file: "[crates]/tokio-[ver]/src/runtime/scheduler/current_thread/mod.rs", line: [NNN] },
                    { fn: "tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}", file: "[crates]/tokio-[ver]/src/runtime/scheduler/current_thread/mod.rs", line: [NNN] },
                    { fn: "tokio::runtime::context::scoped::Scoped<T>::set", file: "[crates]/tokio-[ver]/src/runtime/context/scoped.rs", line: [NNN] },
                    { fn: "tokio::runtime::context::set_scheduler::{{closure}}", file: "[crates]/tokio-[ver]/src/runtime/context.rs", line: [NNN] },
                    { fn: "tokio::runtime::context::set_scheduler", file: "[crates]/tokio-[ver]/src/runtime/context.rs", line: [NNN] },
                    { fn: "tokio::runtime::scheduler::current_thread::CoreGuard::enter", file: "[crates]/tokio-[ver]/src/runtime/scheduler/current_thread/mod.rs", line: [NNN] },
                    { fn: "tokio::runtime::scheduler::current_thread::CoreGuard::block_on", file: "[crates]/tokio-[ver]/src/runtime/scheduler/current_thread/mod.rs", line: [NNN] },
                    { fn: "tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}", file: "[crates]/tokio-[ver]/src/runtime/scheduler/current_thread/mod.rs", line: [NNN] },
                    { fn: "tokio::runtime::context::runtime::enter_runtime", file: "[crates]/tokio-[ver]/src/runtime/context/runtime.rs", line: [NNN] },
                    { fn: "tokio::runtime::scheduler::current_thread::CurrentThread::block_on", file: "[crates]/tokio-[ver]/src/runtime/scheduler/current_thread/mod.rs", line: [NNN] },
                    { fn: "tokio::runtime::runtime::Runtime::block_on_inner", file: "[crates]/tokio-[ver]/src/runtime/runtime.rs", line: [NNN] },
                    { fn: "tokio::runtime::runtime::Runtime::block_on", file: "[crates]/tokio-[ver]/src/runtime/runtime.rs", line: [NNN] },
                    { fn: "timeout_tracing::tests::sqlx::with_sqlx::{{closure}}", file: "./src/tests/sqlx.rs", line: [NNN] },
                    { fn: "serial_test::serial_code_lock::local_serial_core", file: "[crates]/serial_test-[ver]/src/serial_code_lock.rs", line: [NNN] },
                    { fn: "timeout_tracing::tests::sqlx::with_sqlx", file: "./src/tests/sqlx.rs", line: [NNN] },
                    { fn: "timeout_tracing::tests::sqlx::with_sqlx::{{closure}}", file: "./src/tests/sqlx.rs", line: [NNN] },
                ],
                span_trace: SpanTrace [
                    { target: "timeout_tracing::tests::sqlx", name: "exec_query", fields: "sql=\"select pg_sleep(2)\"", file: "src/tests/sqlx.rs", line: [NNN] },
                    { target: "timeout_tracing::tests::sqlx", name: "do_sqlx", file: "src/tests/sqlx.rs", line: [NNN] },
                ],
            },
        ],
    },
)