uridecodebin3: uriplaylistbin test stuck when using fakesink sync=false
To reproduce:
- Grab my uriplaylistbin branch
- Revert the commit setting
sync=true
onfakesink
in tests - Run tests in a loop
After a while the nb_streams_increasing
is getting stuck.
Thread 14 (Thread 0x7f56dcc006c0 (LWP 498352) "dconf worker"):
#0 0x00007f573f4c52bf in poll () at /lib64/libc.so.6
#1 0x00007f573f8da0ed in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#2 0x00007f573f880f00 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3 0x00007f573d81438d in dconf_gdbus_worker_thread () at /usr/lib64/gio/modules/libdconfsettings.so
#4 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#5 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#6 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 13 (Thread 0x7f56df4006c0 (LWP 498349) "multiqueue14:sr"):
#0 0x00007f573f4ca9cd in syscall () at /lib64/libc.so.6
#1 0x00007f573f8d2ea3 in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007f573ed53dca in _gst_data_queue_wait_non_empty (queue=0x7f56c0009770) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:554
#3 0x00007f573ed541f8 in gst_data_queue_pop (queue=0x7f56c0009770, item=0x7f56df3ffbc8) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:596
#4 0x00007f573edb73bc in gst_multi_queue_loop (pad=0x7f56d800c100) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2190
#5 0x00007f573f7977c8 in gst_task_func (task=0x7f56d800e290) at ../subprojects/gstreamer/gst/gsttask.c:399
#6 0x00007f573f798bd3 in default_func (tdata=0x7f56d800fa20, pool=0x7f5708009390) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#7 0x00007f573f8b6052 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#8 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#9 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#10 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 12 (Thread 0x7f56e74006c0 (LWP 498342) "multiqueue4:src"):
#0 0x00007f573f4ca9cd in syscall () at /lib64/libc.so.6
#1 0x00007f573f8d2ea3 in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007f573ed53dca in _gst_data_queue_wait_non_empty (queue=0x7f55c80248a0) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:554
#3 0x00007f573ed541f8 in gst_data_queue_pop (queue=0x7f55c80248a0, item=0x7f56e73ffbc8) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:596
#4 0x00007f573edb73bc in gst_multi_queue_loop (pad=0x7f55c801c1e0) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2190
#5 0x00007f573f7977c8 in gst_task_func (task=0x7f55a001c5f0) at ../subprojects/gstreamer/gst/gsttask.c:399
#6 0x00007f573f798bd3 in default_func (tdata=0x7f55c80245e0, pool=0x7f5708009390) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#7 0x00007f573f8b6052 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#8 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#9 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#10 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 11 (Thread 0x7f56efe006c0 (LWP 498335) "matroskademux3:"):
#0 0x00007f573f4ca9cd in syscall () at /lib64/libc.so.6
#1 0x00007f573f8d2ea3 in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007f573f7976e8 in gst_task_func (task=0x7f557800e3b0) at ../subprojects/gstreamer/gst/gsttask.c:384
#3 0x00007f573f798bd3 in default_func (tdata=0x7f5570012590, pool=0x7f5708009390) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#4 0x00007f573f8b6052 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#5 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#6 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#7 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 10 (Thread 0x7f56f56006c0 (LWP 498333) "gdbus"):
#0 0x00007f573f4c52bf in poll () at /lib64/libc.so.6
#1 0x00007f573f8da0ed in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#2 0x00007f573f88324f in g_main_loop_run () at /lib64/libglib-2.0.so.0
#3 0x00007f573fa7f7da in gdbus_shared_thread_func.lto_priv () at /lib64/libgio-2.0.so.0
#4 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#5 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#6 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 9 (Thread 0x7f56f74006c0 (LWP 498330) "gmain"):
#0 0x00007f573f4c52bf in poll () at /lib64/libc.so.6
#1 0x00007f573f8da0ed in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#2 0x00007f573f880f00 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3 0x00007f573f882b91 in glib_worker_main () at /lib64/libglib-2.0.so.0
#4 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#5 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#6 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 8 (Thread 0x7f56f7e006c0 (LWP 498329) "typefind:sink"):
#0 0x00007f573f4ca9cd in syscall () at /lib64/libc.so.6
#1 0x00007f573f8d2ea3 in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007f573f7976e8 in gst_task_func (task=0x7f55d8009b90) at ../subprojects/gstreamer/gst/gsttask.c:384
#3 0x00007f573f798bd3 in default_func (tdata=0x7f5588009340, pool=0x7f5708009390) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#4 0x00007f573f8b6052 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#5 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#6 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
--Type <RET> for more, q to quit, c to continue without paging--c
#7 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 7 (Thread 0x7f56fe0006c0 (LWP 498325) "typefindelement"):
#0 0x00007f573f4ca9cd in syscall () at /lib64/libc.so.6
#1 0x00007f573f8d2ea3 in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007f573f7976e8 in gst_task_func (task=0x7f567001acb0) at ../subprojects/gstreamer/gst/gsttask.c:384
#3 0x00007f573f798bd3 in default_func (tdata=0x7f56400256e0, pool=0x7f5708009390) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#4 0x00007f573f8b6052 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#5 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#6 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#7 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 6 (Thread 0x7f57074006c0 (LWP 498317) "multiqueue14:sr"):
#0 0x00007f573f4ca9cd in syscall () at /lib64/libc.so.6
#1 0x00007f573f8d2ea3 in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007f573ed53dca in _gst_data_queue_wait_non_empty (queue=0x7f5620006a10) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:554
#3 0x00007f573ed541f8 in gst_data_queue_pop (queue=0x7f5620006a10, item=0x7f57073ffbc8) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:596
#4 0x00007f573edb73bc in gst_multi_queue_loop (pad=0x7f5650026ca0) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2190
#5 0x00007f573f7977c8 in gst_task_func (task=0x7f562800b830) at ../subprojects/gstreamer/gst/gsttask.c:399
#6 0x00007f573f798bd3 in default_func (tdata=0x7f5618007d10, pool=0x7f5708009390) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#7 0x00007f573f8b6052 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#8 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#9 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#10 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 5 (Thread 0x7f571fe006c0 (LWP 498298) "multiqueue25:sr"):
#0 0x00007f573f4ca9cd in syscall () at /lib64/libc.so.6
#1 0x00007f573f8d2ea3 in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007f573ed53dca in _gst_data_queue_wait_non_empty (queue=0x7f55c000da40) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:554
#3 0x00007f573ed541f8 in gst_data_queue_pop (queue=0x7f55c000da40, item=0x7f571fdffbc8) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:596
#4 0x00007f573edb73bc in gst_multi_queue_loop (pad=0x7f5560017080) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2190
#5 0x00007f573f7977c8 in gst_task_func (task=0x7f5540021050) at ../subprojects/gstreamer/gst/gsttask.c:399
#6 0x00007f573f798bd3 in default_func (tdata=0x7f5540020f90, pool=0x7f5708009390) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#7 0x00007f573f8b6052 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#8 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#9 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#10 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 4 (Thread 0x7f5727e006c0 (LWP 498292) "multiqueue4:src"):
#0 0x00007f573f4ca9cd in syscall () at /lib64/libc.so.6
#1 0x00007f573f8d2ea3 in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007f573ed53dca in _gst_data_queue_wait_non_empty (queue=0x7f555802cbb0) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:554
#3 0x00007f573ed541f8 in gst_data_queue_pop (queue=0x7f555802cbb0, item=0x7f5727dffbc8) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:596
#4 0x00007f573edb73bc in gst_multi_queue_loop (pad=0x7f56700197c0) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2190
#5 0x00007f573f7977c8 in gst_task_func (task=0x7f5708018170) at ../subprojects/gstreamer/gst/gsttask.c:399
#6 0x00007f573f798bd3 in default_func (tdata=0x7f54d800b800, pool=0x7f5708009390) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#7 0x00007f573f8b6052 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#8 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#9 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#10 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 3 (Thread 0x7f5736a006c0 (LWP 498283) "multiqueue25:sr"):
#0 0x00007f573f4ca9cd in syscall () at /lib64/libc.so.6
#1 0x00007f573f8d2ea3 in g_cond_wait () at /lib64/libglib-2.0.so.0
#2 0x00007f573ed53dca in _gst_data_queue_wait_non_empty (queue=0x7f55c000db00) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:554
#3 0x00007f573ed541f8 in gst_data_queue_pop (queue=0x7f55c000db00, item=0x7f57369ffbc8) at ../subprojects/gstreamer/libs/gst/base/gstdataqueue.c:596
#4 0x00007f573edb73bc in gst_multi_queue_loop (pad=0x7f5580010fd0) at ../subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2190
#5 0x00007f573f7977c8 in gst_task_func (task=0x7f5540021170) at ../subprojects/gstreamer/gst/gsttask.c:399
#6 0x00007f573f798bd3 in default_func (tdata=0x7f5540023080, pool=0x7f5708009390) at ../subprojects/gstreamer/gst/gsttaskpool.c:70
#7 0x00007f573f8b6052 in g_thread_pool_thread_proxy.lto_priv () at /lib64/libglib-2.0.so.0
#8 0x00007f573f8b2f22 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#9 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#10 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 2 (Thread 0x7f573e0006c0 (LWP 498276) "nb_streams_incr"):
#0 0x00007f573f4c53b6 in ppoll () at /lib64/libc.so.6
#1 0x00007f573f76cec5 in gst_poll_wait (set=0x7f5710002570, timeout=18446744073709551615) at ../subprojects/gstreamer/gst/gstpoll.c:1468
#2 0x00007f573f7036b3 in gst_bus_timed_pop_filtered (bus=0x7f5730002ac0, timeout=18446744073709551615, types=GST_MESSAGE_ANY) at ../subprojects/gstreamer/gst/gstbus.c:612
#3 0x00007f573f70386f in gst_bus_timed_pop (bus=0x7f5730002ac0, timeout=18446744073709551615) at ../subprojects/gstreamer/gst/gstbus.c:651
#4 0x00005651a1c7799c in uriplaylistbin::test (medias=..., n_streams=<optimized out>, iterations=<optimized out>, check_streams=false) at utils/uriplaylistbin/tests/uriplaylistbin.rs:133
#5 0x00005651a1c759ea in uriplaylistbin::nb_streams_increasing () at utils/uriplaylistbin/tests/uriplaylistbin.rs:304
#6 uriplaylistbin::nb_streams_increasing::{closure#0} () at utils/uriplaylistbin/tests/uriplaylistbin.rs:302
#7 core::ops::function::FnOnce::call_once<uriplaylistbin::nb_streams_increasing::{closure_env#0}, ()> () at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250
#8 0x00005651a1cd244f in core::ops::function::FnOnce::call_once<fn() -> core::result::Result<(), alloc::string::String>, ()> () at library/core/src/ops/function.rs:250
#9 test::__rust_begin_short_backtrace<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>> () at library/test/src/lib.rs:627
#10 0x00005651a1cd11d1 in test::run_test_in_process::{closure#0} () at library/test/src/lib.rs:650
#11 core::panic::unwind_safe::{impl#23}::call_once<core::result::Result<(), alloc::string::String>, test::run_test_in_process::{closure_env#0}> () at library/core/src/panic/unwind_safe.rs:272
#12 std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure_env#0}>, core::result::Result<(), alloc::string::String>> () at library/std/src/panicking.rs:552
#13 std::panicking::try<core::result::Result<(), alloc::string::String>, core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure_env#0}>> () at library/std/src/panicking.rs:516
#14 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure_env#0}>, core::result::Result<(), alloc::string::String>> () at library/std/src/panic.rs:142
#15 test::run_test_in_process () at library/test/src/lib.rs:650
#16 test::run_test::{closure#0} () at library/test/src/lib.rs:573
#17 0x00005651a1c96086 in test::run_test::{closure#1} () at library/test/src/lib.rs:601
#18 std::sys_common::backtrace::__rust_begin_short_backtrace<test::run_test::{closure_env#1}, ()> () at library/std/src/sys_common/backtrace.rs:155
#19 0x00005651a1c9b0e7 in std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure#0}<test::run_test::{closure_env#1}, ()> () at library/std/src/thread/mod.rs:529
#20 core::panic::unwind_safe::{impl#23}::call_once<(), std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>> () at library/core/src/panic/unwind_safe.rs:272
#21 std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>>, ()> () at library/std/src/panicking.rs:552
#22 std::panicking::try<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>>> () at library/std/src/panicking.rs:516
#23 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>>, ()> () at library/std/src/panic.rs:142
#24 std::thread::{impl#0}::spawn_unchecked_::{closure#1}<test::run_test::{closure_env#1}, ()> () at library/std/src/thread/mod.rs:528
#25 core::ops::function::FnOnce::call_once<std::thread::{impl#0}::spawn_unchecked_::{closure_env#1}<test::run_test::{closure_env#1}, ()>, ()> () at library/core/src/ops/function.rs:250
#26 0x00005651a1d14225 in alloc::boxed::{impl#47}::call_once<(), dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:2015
#27 alloc::boxed::{impl#47}::call_once<(), alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global>, alloc::alloc::Global> () at library/alloc/src/boxed.rs:2015
#28 std::sys::unix::thread::{impl#2}::new::thread_start () at library/std/src/sys/unix/thread.rs:108
#29 0x00007f573f45119d in start_thread () at /lib64/libc.so.6
#30 0x00007f573f4d2c60 in clone3 () at /lib64/libc.so.6
Thread 1 (Thread 0x7f573f076d40 (LWP 498270) "uriplaylistbin-"):
#0 0x00007f573f4ca9cd in syscall () at /lib64/libc.so.6
#1 0x00005651a1d039a4 in std::sys::unix::futex::futex_wait () at library/std/src/sys/unix/futex.rs:62
#2 std::sys_common::thread_parking::futex::Parker::park () at library/std/src/sys_common/thread_parking/futex.rs:52
#3 std::thread::park () at library/std/src/thread/mod.rs:1066
#4 0x00005651a1c99082 in std::sync::mpmc::context::Context::wait_until () at library/std/src/sync/mpmc/context.rs:139
#5 std::sync::mpmc::list::{impl#3}::recv::{closure#1}<test::event::CompletedTest> () at library/std/src/sync/mpmc/list.rs:444
#6 0x00005651a1c98bda in std::sync::mpmc::context::{impl#0}::with::{closure#0}<std::sync::mpmc::list::{impl#3}::recv::{closure_env#1}<test::event::CompletedTest>, ()> () at library/std/src/sync/mpmc/context.rs:50
#7 std::sync::mpmc::context::{impl#0}::with::{closure#1}<std::sync::mpmc::list::{impl#3}::recv::{closure_env#1}<test::event::CompletedTest>, ()> () at library/std/src/sync/mpmc/context.rs:58
#8 std::thread::local::LocalKey::try_with<core::cell::Cell<core::option::Option<std::sync::mpmc::context::Context>>, std::sync::mpmc::context::{impl#0}::with::{closure_env#1}<std::sync::mpmc::list::{impl#3}::recv::{closure_env#1}<test::event::CompletedTest>, ()>, ()> () at library/std/src/thread/local.rs:270
#9 std::sync::mpmc::context::Context::with<std::sync::mpmc::list::{impl#3}::recv::{closure_env#1}<test::event::CompletedTest>, ()> () at library/std/src/sync/mpmc/context.rs:53
#10 std::sync::mpmc::list::Channel::recv<test::event::CompletedTest> () at library/std/src/sync/mpmc/list.rs:434
#11 0x00005651a1cadff1 in std::sync::mpmc::Receiver::recv<test::event::CompletedTest> () at library/std/src/sync/mpmc/mod.rs:307
#12 std::sync::mpsc::Receiver::recv<test::event::CompletedTest> () at library/std/src/sync/mpsc/mod.rs:849
#13 test::run_tests<test::console::run_tests_console::{closure_env#2}> () at library/test/src/lib.rs:438
#14 test::console::run_tests_console () at library/test/src/console.rs:329
#15 0x00005651a1ccbe2d in test::test_main () at library/test/src/lib.rs:143
#16 0x00005651a1cccded in test::test_main_static () at library/test/src/lib.rs:162
#17 0x00005651a1c75083 in core::ops::function::FnOnce::call_once<fn(), ()> () at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/ops/function.rs:250
#18 std::sys_common::backtrace::__rust_begin_short_backtrace<fn(), ()> (f=0x5651a1f941e8) at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/sys_common/backtrace.rs:155
#19 0x00005651a1c78a99 in std::rt::lang_start::{closure#0}<()> () at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/rt.rs:166
#20 0x00005651a1d03341 in core::ops::function::impls::{impl#2}::call_once<(), (dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> () at library/core/src/ops/function.rs:284
#21 std::panicking::try::do_call<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> () at library/std/src/panicking.rs:552
#22 std::panicking::try<i32, &(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> () at library/std/src/panicking.rs:516
#23 std::panic::catch_unwind<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> () at library/std/src/panic.rs:142
#24 std::rt::lang_start_internal::{closure#2} () at library/std/src/rt.rs:148
#25 std::panicking::try::do_call<std::rt::lang_start_internal::{closure_env#2}, isize> () at library/std/src/panicking.rs:552
#26 std::panicking::try<isize, std::rt::lang_start_internal::{closure_env#2}> () at library/std/src/panicking.rs:516
#27 std::panic::catch_unwind<std::rt::lang_start_internal::{closure_env#2}, isize> () at library/std/src/panic.rs:142
#28 std::rt::lang_start_internal () at library/std/src/rt.rs:148
#29 0x00005651a1c78a8c in main ()
#30 0x00007f573f3ed550 in __libc_start_call_main () at /lib64/libc.so.6
#31 0x00007f573f3ed609 in __libc_start_main_impl () at /lib64/libc.so.6
#32 0x00005651a1c74d75 in _start ()