Skip to content

Panic while formatting headers #1269

@3Hren

Description

@3Hren

My hyper use case is a reverse proxy between HTTP and binary protocol. Unfortunately sometimes while converting headers into a vector of strings, it panics:

thread 'worker 02' panicked at 'a Display implementation return an error unexpectedly: Error', /checkout/src/libcore/result.rs:859
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
             at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::_print
             at /checkout/src/libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at /checkout/src/libstd/sys_common/backtrace.rs:60
             at /checkout/src/libstd/panicking.rs:355
   3: std::panicking::default_hook
             at /checkout/src/libstd/panicking.rs:371
   4: std::panicking::rust_panic_with_hook
             at /checkout/src/libstd/panicking.rs:549
   5: std::panicking::begin_panic
             at /checkout/src/libstd/panicking.rs:511
   6: std::panicking::begin_panic_fmt
             at /checkout/src/libstd/panicking.rs:495
   7: rust_begin_unwind
             at /checkout/src/libstd/panicking.rs:471
   8: core::panicking::panic_fmt
             at /checkout/src/libcore/panicking.rs:69
   9: core::result::unwrap_failed
             at /checkout/src/libcore/macros.rs:29

10: <core::iter::Map<I, F> as core::iter::iterator::Iterator>::next
             at /checkout/src/libcore/result.rs:761
             at /checkout/src/libcollections/string.rs:2027
             at /home/esafronov/.cargo/git/checkouts/hyper-817b53a166fc1c58/fc5b9cc/src/header/mod.rs:609
             at src/route/app.rs:278
             at /checkout/src/libcore/ops.rs:2711
             at /checkout/src/libcore/option.rs:392
             at /checkout/src/libcore/iter/mod.rs:1046
  11: cocaine_http_proxy::route::app::AppRequest::new
             at /checkout/src/libcollections/vec.rs:1899
             at /checkout/src/libcollections/vec.rs:1796
             at /checkout/src/libcollections/vec.rs:1791
             at /checkout/src/libcollections/vec.rs:1692
             at /checkout/src/libcore/iter/iterator.rs:1255
             at src/route/app.rs:276
  12: <cocaine_http_proxy::route::app::AppRoute<L> as cocaine_http_proxy::route::Route>::process
             at src/route/app.rs:173
             at src/route/app.rs:197
  13: cocaine_http_proxy::route::Router::process
             at src/route/mod.rs:90
  14: <cocaine_http_proxy::service::cocaine::ProxyService as tokio_service::Service>::call
             at src/service/cocaine.rs:41
  15: <tokio_proto::streaming::pipeline::server::Dispatch<S, T, P> as tokio_proto::streaming::pipeline::advanced::Dispatch>::dispatch
             at src/service/cocaine.rs:110
             at src/server/mod.rs:90
             at /home/esafronov/.cargo/git/checkouts/hyper-817b53a166fc1c58/fc5b9cc/src/server/mod.rs:335
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/tokio-proto-0.1.1/src/streaming/pipeline/server.rs:124
  16: <tokio_proto::streaming::pipeline::advanced::Pipeline<T> as futures::future::Future>::poll
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/tokio-proto-0.1.1/src/streaming/pipeline/advanced.rs:171
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/tokio-proto-0.1.1/src/streaming/pipeline/advanced.rs:121
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/tokio-proto-0.1.1/src/streaming/pipeline/advanced.rs:376
  17: <futures::future::map_err::MapErr<A, F> as futures::future::Future>::poll
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/futures-0.1.14/src/future/chain.rs:32
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/futures-0.1.14/src/future/and_then.rs:32
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/futures-0.1.14/src/future/map_err.rs:30
  18: tokio_core::reactor::Core::poll
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/futures-0.1.14/src/future/mod.rs:107
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/futures-0.1.14/src/task_impl/mod.rs:291
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/futures-0.1.14/src/task_impl/mod.rs:352
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/futures-0.1.14/src/task_impl/std/mod.rs:90
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/futures-0.1.14/src/task_impl/mod.rs:352
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/futures-0.1.14/src/task_impl/mod.rs:291
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/tokio-core-0.1.8/src/reactor/mod.rs:356
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/scoped-tls-0.1.0/src/lib.rs:135
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/tokio-core-0.1.8/src/reactor/mod.rs:355
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/tokio-core-0.1.8/src/reactor/mod.rs:316
             at /home/esafronov/.cargo/registry/src/github.zerozr99.workers.dev-1ecc6299db9ec823/tokio-core-0.1.8/src/reactor/mod.rs:304

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-headersArea: headers.C-bugCategory: bug. Something is wrong. This is bad!

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions