benfred / py-spy

Sampling profiler for Python programs
MIT License
12.16k stars 401 forks source link

panic with top #569

Open shaolo1 opened 1 year ago

shaolo1 commented 1 year ago

thread '' panicked at 'index out of bounds: the len is 77 but the index is 77', src/python_interpreters.rs:296:20 note: run with RUST_BACKTRACE=1 environment variable to display a backtrace thread 'main' panicked at 'called Result::unwrap() on an Err value: Any { .. }', src/sampler.rs:218:22

invoked via: sudo /home/foov/venv311/bin/py-spy top --nonblocking --pid 417984

Jongy commented 1 year ago

Can you run with RUST_BACKTACE=1, i.e sudo RUST_BACKTACE=1 /home/foov/venv311/bin/py-spy top --nonblocking --pid 417984 and post the full output?

shaolo1 commented 1 year ago

Not sure if it is specific to Ubuntu or not, but had to use command: export RUST_BACKTRACE=1 sudo -E bash -c '/home/foov/venv_311/bin/py-spy top --nonblocking --pid 417984'

thread '' panicked at 'index out of bounds: the len is 17 but the index is 17', src/python_interpreters.rs:296:20 stack backtrace: 0: rust_begin_unwind at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:584:5 1: core::panicking::panic_fmt at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/panicking.rs:142:14 2: core::panicking::panic_bounds_check at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/panicking.rs:84:5 3: ::get_line_number 4: py_spy::stack_trace::get_stack_trace 5: py_spy::python_spy::PythonSpy::get_stack_traces note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace. thread 'main' panicked at 'called Result::unwrap() on an Err value: Any { .. }', src/sampler.rs:218:22 stack backtrace: 0: rust_begin_unwind at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:584:5 1: core::panicking::panic_fmt at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/panicking.rs:142:14 2: core::result::unwrap_failed at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/result.rs:1785:5 3: ::drop 4: core::ptr::drop_in_place 5: py_spy::run_spy_command 6: py_spy::main note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.

shaolo1 commented 1 year ago

...with RUST_BACKTRACE=full

thread '' panicked at 'index out of bounds: the len is 3 but the index is 3', src/python_interpreters.rs:296:20 stack backtrace: 0: 0x7fea05c01dfd - std::backtrace_rs::backtrace::libunwind::trace::hc5376e1f9e4c14fa at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5 1: 0x7fea05c01dfd - std::backtrace_rs::backtrace::trace_unsynchronized::hd15c3fc9f4947abd at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 2: 0x7fea05c01dfd - std::sys_common::backtrace::_print_fmt::ha8075890ce48b75c at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:66:5 3: 0x7fea05c01dfd - ::fmt::hc0b18c49c3f409e9 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:45:22 4: 0x7fea05c3d82c - core::fmt::write::h5f97ce7fceb49c8e at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/fmt/mod.rs:1196:17 5: 0x7fea05bfea21 - std::io::Write::write_fmt::h92643d786d6b0c5a at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/io/mod.rs:1654:15 6: 0x7fea05c035e5 - std::sys_common::backtrace::_print::hbcbdbbe490a4940a at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:48:5 7: 0x7fea05c035e5 - std::sys_common::backtrace::print::h099f7bb689415e9c at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:35:9 8: 0x7fea05c035e5 - std::panicking::default_hook::{{closure}}::hb730f576b7ac56c9 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:295:22 9: 0x7fea05c03259 - std::panicking::default_hook::hed6832fe5378b865 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:314:9 10: 0x7fea05c03bb8 - std::panicking::rust_panic_with_hook::h2727878cd2386357 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:698:17 11: 0x7fea05c03a67 - std::panicking::begin_panic_handler::{{closure}}::hb832e69bd7fe3dc1 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:588:13 12: 0x7fea05c022b4 - std::sys_common::backtrace::rust_end_short_backtrace::h3509025fa7911dd3 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:138:18 13: 0x7fea05c03799 - rust_begin_unwind at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:584:5 14: 0x7fea05953ce3 - core::panicking::panic_fmt::h5d9da573c785c98d at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/panicking.rs:142:14 15: 0x7fea05953c22 - core::panicking::panic_bounds_check::heaa41017ff37bf47 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/panicking.rs:84:5 16: 0x7fea059840c7 - ::get_line_number::h1a5179b6df9617a5 17: 0x7fea059a4e98 - py_spy::stack_trace::get_stack_trace::hfd2e10962f1e82d8 18: 0x7fea0596bc3f - py_spy::python_spy::PythonSpy::get_stack_traces::h70c11f2d38dbd8c4 19: 0x7fea05a0c0d6 - std::sys_common::backtrace::rust_begin_short_backtrace::h415d421592b1dec3 20: 0x7fea059fe007 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h1748460e0434bbc0 21: 0x7fea05c08533 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce>::call_once::h0032718f1ee1e442 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/alloc/src/boxed.rs:1872:9 22: 0x7fea05c08533 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce>::call_once::h5bc95b757ddfa29b at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/alloc/src/boxed.rs:1872:9 23: 0x7fea05c08533 - std::sys::unix::thread::Thread::new::thread_start::h069db4c5e748eedf at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys/unix/thread.rs:108:17 thread 'main' panicked at 'called Result::unwrap() on an Err value: Any { .. }', src/sampler.rs:218:22 stack backtrace: 0: 0x7fea05c01dfd - std::backtrace_rs::backtrace::libunwind::trace::hc5376e1f9e4c14fa at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5 1: 0x7fea05c01dfd - std::backtrace_rs::backtrace::trace_unsynchronized::hd15c3fc9f4947abd at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 2: 0x7fea05c01dfd - std::sys_common::backtrace::_print_fmt::ha8075890ce48b75c at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:66:5 3: 0x7fea05c01dfd - ::fmt::hc0b18c49c3f409e9 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:45:22 4: 0x7fea05c3d82c - core::fmt::write::h5f97ce7fceb49c8e at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/fmt/mod.rs:1196:17 5: 0x7fea05bfea21 - std::io::Write::write_fmt::h92643d786d6b0c5a at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/io/mod.rs:1654:15 6: 0x7fea05c035e5 - std::sys_common::backtrace::_print::hbcbdbbe490a4940a at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:48:5 7: 0x7fea05c035e5 - std::sys_common::backtrace::print::h099f7bb689415e9c at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:35:9 8: 0x7fea05c035e5 - std::panicking::default_hook::{{closure}}::hb730f576b7ac56c9 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:295:22 9: 0x7fea05c03259 - std::panicking::default_hook::hed6832fe5378b865 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:314:9 10: 0x7fea05c03bb8 - std::panicking::rust_panic_with_hook::h2727878cd2386357 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:698:17 11: 0x7fea05c03a67 - std::panicking::begin_panic_handler::{{closure}}::hb832e69bd7fe3dc1 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:588:13 12: 0x7fea05c022b4 - std::sys_common::backtrace::__rust_end_short_backtrace::h3509025fa7911dd3 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:138:18 13: 0x7fea05c03799 - rust_begin_unwind at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:584:5 14: 0x7fea05953ce3 - core::panicking::panic_fmt::h5d9da573c785c98d at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/panicking.rs:142:14 15: 0x7fea05953dd3 - core::result::unwrap_failed::h5add418f3f316ef8 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/result.rs:1785:5 16: 0x7fea059e6bcc - ::drop::hac0aed19884bcfa3 17: 0x7fea05a12e7c - core::ptr::drop_in_place::h9e6d68842c1a111f 18: 0x7fea05a1d0da - py_spy::run_spy_command::h059726825bd45700 19: 0x7fea05a1dd14 - py_spy::main::h523879457f122e9a 20: 0x7fea05a0d5d3 - std::sys_common::backtrace::__rust_begin_short_backtrace::h961c1afc5ca03793 21: 0x7fea0598d209 - std::rt::lang_start::{{closure}}::hd9822804426d1ce6 22: 0x7fea05bf7fa1 - core::ops::function::impls::<impl core::ops::function::FnOnce for &F>::call_once::h18fd15a330c116b9 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/ops/function.rs:280:13 23: 0x7fea05bf7fa1 - std::panicking::try::do_call::he918a328b783a420 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:492:40 24: 0x7fea05bf7fa1 - std::panicking::try::h88ecc043ee71c652 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:456:19 25: 0x7fea05bf7fa1 - std::panic::catch_unwind::h074c8fe23976f009 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panic.rs:137:14 26: 0x7fea05bf7fa1 - std::rt::lang_start_internal::{{closure}}::he26a080dffc4764a at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/rt.rs:128:48 27: 0x7fea05bf7fa1 - std::panicking::try::do_call::hf9be9f327f382512 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:492:40 28: 0x7fea05bf7fa1 - std::panicking::try::h163c4b2413cf9165 at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:456:19 29: 0x7fea05bf7fa1 - std::panic::catch_unwind::h58a40b305e945d4e at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panic.rs:137:14 30: 0x7fea05bf7fa1 - std::rt::lang_start_internal::h183e60933887f95a at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/rt.rs:128:20 31: 0x7fea05a1eb02 - main

Jongy commented 1 year ago

It seems to be a problem in the implementation of get_line_number for Python 3.11.

@shaolo1 Can you please provide:

  1. The py-spy version you used
  2. The Python version used (python --version)
  3. A minimal reproducing example, if you can.
shaolo1 commented 1 year ago

python --version Python 3.11.1 py-spy --version py-spy 0.3.14 ...sorry the program I was profiling is quite large and proprietary.