bpftop
bpftop copied to clipboard
Occasional freeze under load
Occasionally, bpftop freezes up when the system is under load. It can only be terminated by killing it. Tested was an xdp program loaded to two 10G interfaces, with traffic of about 5 Gbit/s. Final load displayed by bpftop was 42%.
From the core file pkill -QUIT bpftop :
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x0000559a818929b4 in std::sys::unix::futex::futex_wait ()
at library/std/src/sys/unix/futex.rs:62
#2 std::sys::unix::locks::futex_mutex::Mutex::lock_contended ()
at library/std/src/sys/unix/locks/futex_mutex.rs:56
#3 0x0000559a818a5cf2 in bpftop::app::App::selected_program ()
#4 0x0000559a81899036 in bpftop::render_graphs ()
#5 0x0000559a81896321 in bpftop::ui ()
#6 0x0000559a8189ec35 in ratatui::terminal::terminal::Terminal<B>::draw ()
#7 0x0000559a81895f76 in bpftop::main ()
#8 0x0000559a818a4133 in std::sys_common::backtrace::__rust_begin_short_backtrace ()
#9 0x0000559a818a186d in _ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h1d1f4f019d401e61E.llvm.4513734777494074926 ()
#10 0x0000559a818f3cf1 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
#11 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
#12 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
#13 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
#14 std::rt::lang_start_internal::{closure#2} () at library/std/src/rt.rs:148
#15 std::panicking::try::do_call<std::rt::lang_start_internal::{closure_env#2}, isize> () at library/std/src/panicking.rs:552
#16 std::panicking::try<isize, std::rt::lang_start_internal::{closure_env#2}>
() at library/std/src/panicking.rs:516
#17 std::panic::catch_unwind<std::rt::lang_start_internal::{closure_env#2}, isize> () at library/std/src/panic.rs:142
#18 std::rt::lang_start_internal () at library/std/src/rt.rs:148
#19 0x0000559a8189b315 in main ()
Thanks for the report. This looks like a deadlock caused by a mutex lock. Working on this next.
@bewo001 the latest release v0.4.1 should fix this issue. Please try it out.
Looks good now! Thank you for the tool!
Wolfgang
On Sun, Apr 7, 2024 at 6:43 PM Jose Fernandez @.***> wrote:
@bewo001 https://github.com/bewo001 the latest release v0.4.1 should fix this issue. Please try it out.
— Reply to this email directly, view it on GitHub https://github.com/Netflix/bpftop/issues/17#issuecomment-2041525758, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABGAJJWH3DWMJWAWQWBUKYTY4FZSDAVCNFSM6AAAAABD5TDWXKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBRGUZDKNZVHA . You are receiving this because you were mentioned.Message ID: @.***>