frr
frr copied to clipboard
PIM6d:- Core observed after removing pimv6 from source interface
Issue- In my Ixia----FHR---LHR---RP setup , i have removed pimv6 ("no ipv6 pim" ) from FHR source ( ixia connected) interface . Below core observed
root@R4:/var/lib/systemd/coredump# gdb /usr/lib/frr/pim6d core.pim6d.113.8ef143bbdcad4d6989a1380671bc6980.27967.1662763689000000
GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/lib/frr/pim6d...Reading symbols from /usr/lib/debug/.build-id/0c/2e64b8a164c958c9eb7659f9e8d3ac5559f936.debug...done.
done.
[New LWP 27967]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/lib/frr/pim6d -d -F traditional -A ::1'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 raise (sig=sig@entry=11) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 raise (sig=sig@entry=11) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007f3fce10b42c in core_handler (signo=11, siginfo=0x7fff72c8c8f0, context=<optimized out>) at lib/sigevent.c:261
#2 <signal handler called>
#3 0x0000555f446c0867 in pim_upstream_kat_start_ok (up=0x555f45a1e4e0) at pimd/pim_upstream.c:1989
#4 pim_upstream_sg_running_proc (up=0x555f45a1e4e0) at pimd/pim_upstream.c:2029
#5 0x00007f3fce1265e7 in wheel_timer_thread_helper (t=<optimized out>) at lib/wheel.c:55
#6 0x00007f3fce11cf7d in thread_call (thread=0x555f459e57d0) at lib/thread.c:2005
#7 0x00007f3fce11d273 in _thread_execute (xref=0x7f3fce3d2600 <_xref.10900>, m=0x555f4578dc20, func=<optimized out>, arg=0x555f458edf00, val=0)
at lib/thread.c:2097
#8 0x00007f3fce11cf7d in thread_call (thread=thread@entry=0x7fff72c8cf70) at lib/thread.c:2005
#9 0x00007f3fce0d76f8 in frr_run (master=0x555f4578dc20) at lib/libfrr.c:1198
#10 0x0000555f4468e8ba in main (argc=6, argv=0x7fff72c8d288, envp=<optimized out>) at pimd/pim6_main.c:199
(gdb) bt full
#0 raise (sig=sig@entry=11) at ../sysdeps/unix/sysv/linux/raise.c:51
set = {__val = {18446744067266829055, 140735119148503, 167, 0, 0, 0, 7018141387277233769, 93867660738816, 140735119148544, 139912016703203,
140735119148464, 139912016703142, 3539864629463228448, 3834033537019818553, 6875981782654727729, 7526745822175521140}}
pid = <optimized out>
tid = <optimized out>
ret = <optimized out>
#1 0x00007f3fce10b42c in core_handler (signo=11, siginfo=0x7fff72c8c8f0, context=<optimized out>) at lib/sigevent.c:261
pc = <optimized out>
sa_default = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 0,
sa_restorer = 0x0}
sigset = {__val = {9216, 0 <repeats 15 times>}}
#2 <signal handler called>
No locals.
#3 0x0000555f446c0867 in pim_upstream_kat_start_ok (up=0x555f45a1e4e0) at pimd/pim_upstream.c:1989
c_oil = 0x555f45a1e670
ifp = 0x555f459c2fe0
pim_ifp = 0x0
c_oil = <optimized out>
ifp = <optimized out>
pim_ifp = <optimized out>
#4 pim_upstream_sg_running_proc (up=0x555f45a1e4e0) at pimd/pim_upstream.c:2029
rv = false
pim = <optimized out>
__func__ = "pim_upstream_sg_running_proc"
#5 0x00007f3fce1265e7 in wheel_timer_thread_helper (t=<optimized out>) at lib/wheel.c:55
node = <optimized out>
nextnode = 0x0
curr_slot = 23
slots_to_skip = 1
wheel = 0x555f458edf00
data = <optimized out>
__func__ = "wheel_timer_thread_helper"
_xrefdata = {xrefdata = {xref = 0x7f3fce3d25c0 <_xref.10877>, uid = "N0CA3-ZVMV3\000\000\000\000",
hashstr = 0x7f3fce16b4e8 "%s: Wheel Slot: %lld(%lld) count: %d", hashu32 = {7, 0}, xui = {re = {
rbt_parent = 0x7f3fce3df9a8 <_xrefdata.18154+40>, rbt_left = 0x555f44922608 <_xrefdata.23105+40>,
rbt_right = 0x555f44924208 <_xrefdata.23078+40>, rbt_color = 1}}}, fl_print_bt = 0 '\000'}
_xref = {xref = {xrefdata = 0x7f3fce3e86a0 <_xrefdata.10876>, type = XREFT_LOGMSG, line = 51, file = 0x7f3fce16b3a7 "lib/wheel.c",
func = 0x7f3fce16b470 <__func__.10878> "wheel_timer_thread_helper"}, fmtstring = 0x7f3fce16b4e8 "%s: Wheel Slot: %lld(%lld) count: %d",
priority = 7, ec = 0, args = 0x7f3fce16b510 "__func__, wheel->curr_slot, curr_slot, ((wheel->wheel_slot_lists[curr_slot])->count)"}
xref_p_1 = 0x7f3fce3d25c0 <_xref.10877>
_xref = {xref = {xrefdata = 0x0, type = XREFT_ASSERT, line = 54, file = 0x7f3fce16b3a7 "lib/wheel.c",
func = 0x7f3fce16b470 <__func__.10878> "wheel_timer_thread_helper"}, expr = 0x7f3fce166a52 "node", extra = 0x0, args = 0x0}
xref_p_2 = 0x7f3fce3d2580 <_xref.10880>
#6 0x00007f3fce11cf7d in thread_call (thread=0x555f459e57d0) at lib/thread.c:2005
before = {cpu = {tv_sec = 0, tv_nsec = 98232239}, real = {tv_sec = 9753762, tv_usec = 713116}}
after = {cpu = {tv_sec = 0, tv_nsec = 140735119150672}, real = {tv_sec = 713113, tv_usec = 139912017261552}}
cputime_enabled_here = true
walltime = <optimized out>
cputime = 139912016940686
exp = <optimized out>
__func__ = <optimized out>
#7 0x00007f3fce11d273 in _thread_execute (xref=0x7f3fce3d2600 <_xref.10900>, m=0x555f4578dc20, func=<optimized out>, arg=0x555f458edf00, val=0)
at lib/thread.c:2097
thread = 0x555f459e57d0
#8 0x00007f3fce11cf7d in thread_call (thread=thread@entry=0x7fff72c8cf70) at lib/thread.c:2005
before = {cpu = {tv_sec = 0, tv_nsec = 98232239}, real = {tv_sec = 9753762, tv_usec = 713116}}
after = {cpu = {tv_sec = 0, tv_nsec = 98191382}, real = {tv_sec = 9753761, tv_usec = 564922}}
---Type <return> to continue, or q <return> to quit---
cputime_enabled_here = true
walltime = <optimized out>
cputime = 0
exp = <optimized out>
__func__ = <optimized out>
#9 0x00007f3fce0d76f8 in frr_run (master=0x555f4578dc20) at lib/libfrr.c:1198
instanceinfo = '\000' <repeats 63 times>
__func__ = "frr_run"
thread = {type = 4 '\004', add_type = 2 '\002', threaditem = {si = {next = 0x0}}, timeritem = {hi = {index = 0}}, ref = 0x555f458edf38,
master = 0x555f4578dc20, func = 0x7f3fce1264b0 <wheel_timer_thread>, arg = 0x555f458edf00, u = {val = 9753762, fd = 9753762, sands = {
tv_sec = 9753762, tv_usec = 712840}}, real = {tv_sec = 9753762, tv_usec = 713116}, hist = 0x555f458ef600, yield = 10000,
xref = 0x7f3fce3d2500 <_xref.10894>, mtx = pthread_mutex_t = {Type = Normal, Status = Not acquired, Robust = No, Shared = No, Protocol = None},
ignore_timer_late = false}
#10 0x0000555f4468e8ba in main (argc=6, argv=0x7fff72c8d288, envp=<optimized out>) at pimd/pim6_main.c:199
longopts = {{name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
This issue is same as #10782
Root cause is found, working on the fix.
Dup https://github.com/FRRouting/frr/issues/10782