jerry
November 30, 2022, 8:51pm
1
Hi community, I came across a panic on macOS recently, and was able to show the following stack trace after setting RUST_BACKTRACE to 1:
thread 'main' panicked at 'a Display implementation returned an error unexpectedly: Error', /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/alloc/src/string.rs:2481:14
stack backtrace:
0: 0x7f950992163d - std::backtrace_rs::backtrace::libunwind::trace::hc5376e1f9e4c14fa
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x7f950992163d - std::backtrace_rs::backtrace::trace_unsynchronized::hd15c3fc9f4947abd
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f950992163d - std::sys_common::backtrace::_print_fmt::ha8075890ce48b75c
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:66:5
3: 0x7f950992163d - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hc0b18c49c3f409e9
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:45:22
4: 0x7f9509962fcc - core::fmt::write::h5f97ce7fceb49c8e
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/fmt/mod.rs:1196:17
5: 0x7f950991ad01 - std::io::Write::write_fmt::h92643d786d6b0c5a
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/io/mod.rs:1654:15
6: 0x7f9509922fb5 - std::sys_common::backtrace::_print::hbcbdbbe490a4940a
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:48:5
7: 0x7f9509922fb5 - std::sys_common::backtrace::print::h099f7bb689415e9c
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:35:9
8: 0x7f9509922fb5 - std::panicking::default_hook::{{closure}}::hb730f576b7ac56c9
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:295:22
9: 0x7f9509922c29 - std::panicking::default_hook::hed6832fe5378b865
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:314:9
10: 0x7f9509923588 - std::panicking::rust_panic_with_hook::h2727878cd2386357
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:698:17
11: 0x7f9509923437 - std::panicking::begin_panic_handler::{{closure}}::hb832e69bd7fe3dc1
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:588:13
12: 0x7f9509921af4 - std::sys_common::backtrace::__rust_end_short_backtrace::h3509025fa7911dd3
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:138:18
13: 0x7f9509923169 - rust_begin_unwind
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:584:5
14: 0x7f9508f112c3 - core::panicking::panic_fmt::h5d9da573c785c98d
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/panicking.rs:142:14
15: 0x7f9508f113b3 - core::result::unwrap_failed::h5add418f3f316ef8
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/result.rs:1785:5
16: 0x7f95092e70dc - <T as alloc::string::ToString>::to_string::h10ce53e41595dd2e
17: 0x7f95092fee9f - <pact_models::generators::Generator as pact_models::generators::GenerateValue<serde_json::value::Value>>::generate_value::heaa3cc6d06aaf52e
18: 0x7f95093036eb - <pact_models::generators::JsonHandler as pact_models::generators::ContentTypeHandler<serde_json::value::Value>>::apply_key::h5368e108799e47ca
19: 0x7f9509302a37 - <pact_models::generators::JsonHandler as pact_models::generators::ContentTypeHandler<serde_json::value::Value>>::process_body::h50e08841a9c5747c
20: 0x7f9508f6617b - pact_matching::generators::generators_process_body::{{closure}}::hf7642ae79655ad62
21: 0x7f9508f86f58 - pact_verifier::verify_response_from_provider::{{closure}}::h2adbec90847b61b9
22: 0x7f9508fc952d - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::hc3bca0a640d66bf0
23: 0x7f9508fbad3c - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h30bd2f059538cc85
24: 0x7f9508f54475 - <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll::h148baf817e15a568
25: 0x7f9508fbc352 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h4823e06f176ee40b
26: 0x7f9508f47b18 - <futures_util::stream::stream::then::Then<St,Fut,F> as futures_core::stream::Stream>::poll_next::hd657b7269c813dd0
27: 0x7f95090211dc - <futures_util::stream::stream::collect::Collect<St,C> as core::future::future::Future>::poll::h3e98278371acac25
28: 0x7f9508f8098f - pact_verifier::verify_provider_async::{{closure}}::{{closure}}::h6dad783c66e5cc53
29: 0x7f9508fd62d0 - <tokio::task::task_local::TaskLocalFuture<T,F> as core::future::future::Future>::poll::h23d8950899588a33
30: 0x7f9508fce36a - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::hdf98dfd50c5ce2b4
31: 0x7f9508f542d5 - <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll::h0d719edb8530cd18
32: 0x7f9508fd4c80 - pact_verifier_cli::handle_cli::{{closure}}::hfd5cc15d506a3c56
33: 0x7f9508fcbd10 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::hcdcbcec9b78766ff
34: 0x7f9508fd935e - std::thread::local::LocalKey<T>::with::h7c545d0a26d660fc
35: 0x7f9508f3dcef - tokio::park::thread::CachedParkThread::block_on::h0f0a115e08041f1e
36: 0x7f95090205b4 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hdfa231122ae4b4d8
37: 0x7f9508feb79a - pact_verifier_cli::main::hafaa89afa28664f8
38: 0x7f9508f2d353 - std::sys_common::backtrace::__rust_begin_short_backtrace::h5ee6ba657c274c8b
39: 0x7f9508fd7719 - std::rt::lang_start::{{closure}}::h80c5fbaa8c265070
40: 0x7f95099150e1 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h18fd15a330c116b9
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/ops/function.rs:280:13
41: 0x7f95099150e1 - std::panicking::try::do_call::he918a328b783a420
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:492:40
42: 0x7f95099150e1 - std::panicking::try::h88ecc043ee71c652
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:456:19
43: 0x7f95099150e1 - std::panic::catch_unwind::h074c8fe23976f009
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panic.rs:137:14
44: 0x7f95099150e1 - std::rt::lang_start_internal::{{closure}}::he26a080dffc4764a
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/rt.rs:128:48
45: 0x7f95099150e1 - std::panicking::try::do_call::hf9be9f327f382512
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:492:40
46: 0x7f95099150e1 - std::panicking::try::h163c4b2413cf9165
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:456:19
47: 0x7f95099150e1 - std::panic::catch_unwind::h58a40b305e945d4e
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panic.rs:137:14
48: 0x7f95099150e1 - std::rt::lang_start_internal::h183e60933887f95a
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/rt.rs:128:20
49: 0x7f9508fec572 - main
How should I interpret this backtrace? Specifically
What's the root cause for this panic? Calling "to_string"?
How to interpret <T as alloc::string::ToString>::to_string
? Does "as" mean a type casting?
What are those strings start with an "h" e.g., "h183e60933887f95a"?
Could you please provide links to official doc and/or Rust source code to support your answers?
Thanks in advance!
The root cause is a panic from a panic inside to_string()
.
This is fully qualified syntax , referring to the to_string()
method in the implementation of the ToString
trait for the type T
. Usually, an actual type would be in the place of T
; in this case, it's named as a generic parameter since it's referring to a blanket impl for types implementing Display
:
impl<T: fmt::Display + ?Sized> ToString for T {
// A common guideline is to not inline generic functions. However,
// removing `#[inline]` from this method causes non-negligible regressions.
// See <https://github.com/rust-lang/rust/pull/74852>, the last attempt
// to try to remove it.
#[inline]
default fn to_string(&self) -> String {
let mut buf = String::new();
let mut formatter = core::fmt::Formatter::new(&mut buf);
// Bypass format_args!() to avoid write_str with zero-length strs
fmt::Display::fmt(self, &mut formatter)
.expect("a Display implementation returned an error unexpectedly");
buf
}
}
Here, we see the Result::expect()
call that is generating the panic. It's saying that the Display
impl for whatever is being converted to a string unexpectedly returned an Err
. Now, looking at the source for the generate_value()
method which calls to_string()
, we see several possible culprits.
Are you able to reproduce this panic on a debug build? That would let the backtrace include the file and line number of the to_string()
call that is causing the panic.
These are symbol hashes , added to disambiguate different versions of a function with different generic parameters, as well as to differentiate the same function in different versions of a crate.
1 Like
jerry
December 1, 2022, 1:05am
3
Wow, thanks a lot for your answer!
And yes, I was able to reproduce this panic on a debug build, which produced the following backtrace:
thread 'main' panicked at 'a Display implementation returned an error unexpectedly: Error', /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/alloc/src/string.rs:2490:14
stack backtrace:
0: 0x10e89a044 - std::backtrace_rs::backtrace::libunwind::trace::h0934ce8016da62ea
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x10e89a044 - std::backtrace_rs::backtrace::trace_unsynchronized::h59c3dee870344ec2
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x10e89a044 - std::sys_common::backtrace::_print_fmt::h498b4033e357b134
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/sys_common/backtrace.rs:66:5
3: 0x10e89a044 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h7d80e14dd19335c9
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/sys_common/backtrace.rs:45:22
4: 0x10e8ba42b - core::fmt::write::h1709d0255080e28a
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/fmt/mod.rs:1198:17
5: 0x10e8937c8 - std::io::Write::write_fmt::hecc56b5639d319e7
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/io/mod.rs:1672:15
6: 0x10e89b95d - std::sys_common::backtrace::_print::h6f0d53db9de204c5
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/sys_common/backtrace.rs:48:5
7: 0x10e89b95d - std::sys_common::backtrace::print::h33928b4e9b284b1e
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/sys_common/backtrace.rs:35:9
8: 0x10e89b95d - std::panicking::default_hook::{{closure}}::had4d1cd22a173020
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:295:22
9: 0x10e89b6ae - std::panicking::default_hook::h42aa124509888735
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:314:9
10: 0x10e89be98 - std::panicking::rust_panic_with_hook::h2b231e816574a23a
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:698:17
11: 0x10e89bdd3 - std::panicking::begin_panic_handler::{{closure}}::h9da8d88b7a4c9d5e
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:588:13
12: 0x10e89a4c7 - std::sys_common::backtrace::__rust_end_short_backtrace::h10dbf1377dfaf877
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/sys_common/backtrace.rs:138:18
13: 0x10e89baaa - rust_begin_unwind
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:584:5
14: 0x10e8f47b3 - core::panicking::panic_fmt::hde1544b10dc8b4d3
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/panicking.rs:142:14
15: 0x10e8f4915 - core::result::unwrap_failed::h0a3d20f5459baffe
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/result.rs:1814:5
16: 0x10e635c44 - core::result::Result<T,E>::expect::he374246a5082fd3d
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/result.rs:1064:23
17: 0x10da71635 - <T as alloc::string::ToString>::to_string::hbd9ea0180819e6e4
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/alloc/src/string.rs:2489:9
18: 0x10dc00b56 - <pact_models::generators::Generator as pact_models::generators::GenerateValue<serde_json::value::Value>>::generate_value::hd9058cd40dee4bcd
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/pact_models-1.0.1/src/generators/mod.rs:1264:24
19: 0x10dc0518d - <pact_models::generators::JsonHandler as pact_models::generators::ContentTypeHandler<serde_json::value::Value>>::apply_key::ha03b9cc2b8fdf370
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/pact_models-1.0.1/src/generators/mod.rs:1476:37
20: 0x10dc048b8 - <pact_models::generators::JsonHandler as pact_models::generators::ContentTypeHandler<serde_json::value::Value>>::process_body::h1218e8ecc7f95a6d
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/pact_models-1.0.1/src/generators/mod.rs:1445:9
21: 0x10d1160ef - pact_matching::generators::generators_process_body::{{closure}}::h31220800d6825a4e
at /Users/jerry.wang/pact-reference/rust/pact_matching/src/generators.rs:65:14
22: 0x10d10cf07 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h40334db293e6359b
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
23: 0x10d196704 - pact_matching::generate_request::{{closure}}::ha4113a3cdd913faa
at /Users/jerry.wang/pact-reference/rust/pact_matching/src/lib.rs:1799:82
24: 0x10d10d7e7 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h551315c82dfda646
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
25: 0x10d0dc022 - pact_verifier::verify_response_from_provider::{{closure}}::h9877dda4de8265ba
at /Users/jerry.wang/pact-reference/rust/pact_verifier/src/lib.rs:312:57
26: 0x10d10d367 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h48a854da5a415ee1
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
27: 0x10d0d6f6a - pact_verifier::verify_v3_interaction::{{closure}}::h45fea097a8c0ba3f
at /Users/jerry.wang/pact-reference/rust/pact_verifier/src/lib.rs:529:78
28: 0x10d110237 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::hf9b9fa9fa07e8684
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
29: 0x10d0c7c6e - pact_verifier::verify_interaction::{{closure}}::h80ee265a77569cab
at /Users/jerry.wang/pact-reference/rust/pact_verifier/src/lib.rs:405:100
30: 0x10d10f0b7 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::hc47bbe3125daa357
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
31: 0x10d16062e - <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll::h15e3c88e260e562a
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tracing-0.1.37/src/instrument.rs:272:9
32: 0x10d0cde6e - pact_verifier::verify_pact_internal::{{closure}}::{{closure}}::{{closure}}::ha09e8befd843c5e5
at /Users/jerry.wang/pact-reference/rust/pact_verifier/src/lib.rs:1238:96
33: 0x10d10ea27 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h9a263671d9082f6c
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
34: 0x10d20e9a4 - <futures_util::stream::stream::then::Then<St,Fut,F> as futures_core::stream::Stream>::poll_next::he0e372d3da3dbf1a
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/stream/stream/then.rs:69:35
35: 0x10d1a0b6c - <futures_util::stream::stream::collect::Collect<St,C> as core::future::future::Future>::poll::h7517f2b9672dec9b
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.25/src/stream/stream/collect.rs:50:26
36: 0x10d0cb26c - pact_verifier::verify_pact_internal::{{closure}}::h45e671e3c78c3773
at /Users/jerry.wang/pact-reference/rust/pact_verifier/src/lib.rs:1240:15
37: 0x10d10dcd7 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h5eeb4203c4243d05
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
38: 0x10d0d39bb - pact_verifier::verify_provider_async::{{closure}}::{{closure}}::h5b70da8ef21ab1bd
at /Users/jerry.wang/pact-reference/rust/pact_verifier/src/lib.rs:936:14
39: 0x10d10d487 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h4bc81913dfa1e69a
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
40: 0x10d1cf85f - <tokio::task::task_local::TaskLocalFuture<T,F> as core::future::future::Future>::poll::{{closure}}::h10ed70110148349b
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.22.0/src/task/task_local.rs:348:35
41: 0x10d1cfde0 - tokio::task::task_local::LocalKey<T>::scope_inner::h65b8f7642d2b0345
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.22.0/src/task/task_local.rs:233:19
42: 0x10d1cf6ef - <tokio::task::task_local::TaskLocalFuture<T,F> as core::future::future::Future>::poll::hb9be4bdb88bb9280
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.22.0/src/task/task_local.rs:345:13
43: 0x10d0ceb4d - pact_verifier::verify_provider_async::{{closure}}::h5a168de0dcce414c
at /Users/jerry.wang/pact-reference/rust/pact_verifier/src/lib.rs:1042:5
44: 0x10d10d247 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h463ec61644ab193f
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
45: 0x10d16083e - <tracing::instrument::Instrumented<T> as core::future::future::Future>::poll::hbd62d2544c32a3d6
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tracing-0.1.37/src/instrument.rs:272:9
46: 0x10d14e63f - pact_verifier_cli::handle_matches::{{closure}}::h79d2fcdedb5b43dd
at /Users/jerry.wang/pact-reference/rust/pact_verifier_cli/src/main.rs:450:87
47: 0x10d110430 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::hff73d5413f103692
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
48: 0x10d14b407 - pact_verifier_cli::handle_cli::{{closure}}::h206de5e0c180c6bf
at /Users/jerry.wang/pact-reference/rust/pact_verifier_cli/src/main.rs:348:44
49: 0x10d10fad0 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::hdf4677d307991909
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
50: 0x10d1512cf - pact_verifier_cli::main::{{closure}}::hbdcc256871246266
at /Users/jerry.wang/pact-reference/rust/pact_verifier_cli/src/main.rs:603:52
51: 0x10d10cad0 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h1df0505bd4332cba
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/future/mod.rs:91:19
52: 0x10d0f851a - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::had296ec6bca9c200
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.22.0/src/runtime/park.rs:272:63
53: 0x10d0f7eba - tokio::runtime::coop::with_budget::hbd2d7dbd93d606e8
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.22.0/src/runtime/coop.rs:102:5
54: 0x10d0f7eba - tokio::runtime::coop::budget::h0ddfc055d61c1afa
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.22.0/src/runtime/coop.rs:68:5
55: 0x10d0f7eba - tokio::runtime::park::CachedParkThread::block_on::h421c42ff88316e1b
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.22.0/src/runtime/park.rs:272:31
56: 0x10d1d859e - tokio::runtime::context::BlockingRegionGuard::block_on::h711dab1ba999f3cc
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.22.0/src/runtime/context.rs:255:13
57: 0x10d0949ce - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::h322a68a1214546d6
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.22.0/src/runtime/scheduler/multi_thread/mod.rs:66:9
58: 0x10d1d036a - tokio::runtime::runtime::Runtime::block_on::he7a5ca7e43e13373
at /Users/jerry.wang/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.22.0/src/runtime/runtime.rs:281:45
59: 0x10d1a03ce - pact_verifier_cli::main::hbe6ad281e082a183
at /Users/jerry.wang/pact-reference/rust/pact_verifier_cli/src/main.rs:602:16
60: 0x10d0e4c6e - core::ops::function::FnOnce::call_once::h9f8aabdc60347e60
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/ops/function.rs:248:5
61: 0x10d1dae21 - std::sys_common::backtrace::__rust_begin_short_backtrace::h165948dfe85c04af
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/sys_common/backtrace.rs:122:18
62: 0x10d0a25d4 - std::rt::lang_start::{{closure}}::hba7781b10c17c56b
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/rt.rs:145:18
63: 0x10e88d9bb - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::ha6b934dd2f7d5008
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/core/src/ops/function.rs:280:13
64: 0x10e88d9bb - std::panicking::try::do_call::h5a3f4b34abdbdae8
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:492:40
65: 0x10e88d9bb - std::panicking::try::h56b1848524fc332f
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:456:19
66: 0x10e88d9bb - std::panic::catch_unwind::h44afff85dd6d04a7
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panic.rs:137:14
67: 0x10e88d9bb - std::rt::lang_start_internal::{{closure}}::hd7c11497b2582199
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/rt.rs:128:48
68: 0x10e88d9bb - std::panicking::try::do_call::h2353d56408689f1d
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:492:40
69: 0x10e88d9bb - std::panicking::try::h58a401d784e0ca5d
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panicking.rs:456:19
70: 0x10e88d9bb - std::panic::catch_unwind::h35fff46a669b8467
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/panic.rs:137:14
71: 0x10e88d9bb - std::rt::lang_start_internal::h18b571735d69908e
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/rt.rs:128:20
72: 0x10d0a25ae - std::rt::lang_start::h248788b8e5f8daf5
at /rustc/a55dd71d5fb0ec5a6a3a9e8c27b2127ba491ce52/library/std/src/rt.rs:144:17
73: 0x10d1a0516 - _main
74: 0x7ff805909310 - <unknown>
So it looks the culprit is part of the Generator::Date branch.
How are you invoking pact_verifier_cli
? It looks like this panic is caused whenever a "date"
matcher rule is used with time formatting characters (such as HH:mm:ss
).
jerry
December 5, 2022, 6:07am
5
With a bunch of command line options, of course. But the root cause is that there is a pact (JSON) file, in which there is an offending object looks like the following:
"generators": {
"body": {
"$.DateCreated": {
"format": "yyyy-MM-dd'T'HH:mm:ss.SSSX",
"type": "Date"
},
...
As you guessed, there is a mismatch between the type "Date" and the format string ""yyyy-MM-dd'T'HH:mm:ss.SSSX" (which is for a "DateTime").
1 Like
system
Closed
March 5, 2023, 6:08am
6
This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.