Hang in one thread of CPUs
Closed this issue · 1 comments
wfyanmnm commented
Describe the bug
There are 4 threads, one 100%
%Cpu0 : 0.7 us, 0.0 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.7 us, 1.0 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu3 : 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
gdb bt
(gdb) thread 1
[Switching to thread 1 (Thread 0x7f724cb9f0c0 (LWP 79697))]
#0 __GI___libc_read (nbytes=4, buf=0x7ffc256a5ec0, fd=13) at ../sysdeps/unix/sysv/linux/read.c:26
26 in ../sysdeps/unix/sysv/linux/read.c
(gdb) bt
#0 __GI___libc_read (nbytes=4, buf=0x7ffc256a5ec0, fd=13) at ../sysdeps/unix/sysv/linux/read.c:26
#1 __GI___libc_read (fd=fd@entry=13, buf=buf@entry=0x7ffc256a5ec0, nbytes=nbytes@entry=4) at ../sysdeps/unix/sysv/linux/read.c:24
#2 0x000055cba8f56933 in read (__nbytes=<optimized out>, __buf=<optimized out>, __fd=<optimized out>, __fd=<optimized out>, __buf=<optimized out>, __nbytes=<optimized out>)
at /usr/include/x86_64-linux-gnu/bits/unistd.h:38
#3 tube_read_msg.constprop.0.isra.0 (buf=0x7ffc256a5ec8, len=0x7ffc256a5ec0, nonblock=0, tube=<optimized out>, tube=<optimized out>) at util/tube.c:355
#4 0x000055cba8e89fe7 in server_stats_obtain (reset=0, s=0x7ffc256a5ef0, who=0x55cbab8a37e0, worker=0x55cbad466190) at daemon/stats.c:382
#5 do_stats (ssl=0x7ffc256a8cb0, worker=0x55cbad466190, reset=0) at daemon/remote.c:1106
#6 0x000055cba8f66e67 in handle_req.isra.0 (rc=rc@entry=0x55cba90c4130, res=res@entry=0x7ffc256a8cb0, s=<optimized out>, s=<optimized out>) at daemon/remote.c:3204
#7 0x000055cba8e8e814 in remote_control_callback (c=0x55cbae07aa00, arg=0x55cbac7dafc0, err=<optimized out>, rep=<optimized out>) at daemon/remote.c:3286
#8 0x00007f724dcb6f58 in event_persist_closure (ev=<optimized out>, base=0x55cbaafcbda0) at /build/libevent-aonuXH/libevent-2.1.12-stable/event.c:1623
#9 event_process_active_single_queue (base=base@entry=0x55cbaafcbda0, activeq=0x55cbabf16fc0, max_to_process=max_to_process@entry=2147483647, endtime=endtime@entry=0x0)
at /build/libevent-aonuXH/libevent-2.1.12-stable/event.c:1682
#10 0x00007f724dcb88a7 in event_process_active (base=0x55cbaafcbda0) at /build/libevent-aonuXH/libevent-2.1.12-stable/event.c:1783
#11 event_base_loop (base=0x55cbaafcbda0, flags=flags@entry=0) at /build/libevent-aonuXH/libevent-2.1.12-stable/event.c:2006
#12 0x00007f724dcb8afb in event_base_dispatch (event_base=<optimized out>) at /build/libevent-aonuXH/libevent-2.1.12-stable/event.c:1817
#13 0x000055cba8f56c2d in ub_event_base_dispatch (base=<optimized out>) at util/ub_event.c:280
#14 comm_base_dispatch.isra.0 (b=<optimized out>, b=<optimized out>) at util/netevent.c:246
#15 0x000055cba8e87146 in worker_work (worker=<optimized out>) at daemon/worker.c:1949
#16 daemon_fork (daemon=<optimized out>) at daemon/daemon.c:701
#17 0x000055cba8e93c60 in run_daemon (cfgfile=0x55cba8f6adc9 "/etc/unbound/unbound.conf", cmdline_verbose=0, debug_mode=1, need_pidfile=0) at daemon/unbound.c:707
#18 0x000055cba8e811f5 in main (argc=<optimized out>, argv=0x7ffc256a91b8) at daemon/unbound.c:808
(gdb)
To reproduce
Steps to reproduce the behavior:
- Do not know how to reproduce, but it happened serveral times
Expected behavior
A clear and concise description of what you expected to happen.
System:
- Unbound version: 1.13.1, installed through offical ubuntu apt repo
- OS: Ubuntu 22.04.4 LTS
unbound -V
output:
Version 1.13.1
Configure line: --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-option-checking --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --disable-rpath --with-pidfile=/run/unbound.pid --with-rootkey-file=/var/lib/unbound/root.key --with-libevent --with-libnghttp2 --with-pythonmodule --enable-subnet --enable-dnstap --enable-systemd --with-chroot-dir= --with-dnstap-socket-path=/run/dnstap.sock --libdir=/usr/lib
Linked libs: libevent 2.1.12-stable (it uses epoll), OpenSSL 3.0.2 15 Mar 2022
Linked modules: dns64 python subnetcache respip validator iterator
BSD licensed, see LICENSE in source package for details.
Report bugs to unbound-bugs@nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues
Additional information
Similliar with #439 #411, but not the same
gthess commented
Hi, thanks for reporting!
There were a series of fixes to address this (blocking read on the stats command) in Unbound 1.17.0.
I am closing this as non-issue anymore.
If you use a newer Unbound and you observe the same behavior feel free to reopen.