[FROG] ospfd crashes when deleting a route-map

Amol Lad Amol.Lad at 4rf.com
Wed Nov 25 03:21:07 UTC 2020


Hi Donald,

The crash reported earlier does exist and below addresses it.

diff --git a/ospfd/ospf_routemap.c b/ospfd/ospf_routemap.c
index c89fd35..2ed5a3a 100644
--- a/ospfd/ospf_routemap.c
+++ b/ospfd/ospf_routemap.c
@@ -445,7 +445,7 @@ static void *route_set_metric_compile(const char *arg)
{
    struct ospf_metric *metric;

-   metric = XCALLOC(MTYPE_ROUTE_MAP_COMPILED, sizeof(uint32_t));
+   metric = XCALLOC(MTYPE_ROUTE_MAP_COMPILED, sizeof(struct ospf_metric));
    metric->used = false;

    if (all_digit(arg))

-----Original Message-----
From: Donald Sharp <sharpd at cumulusnetworks.com> 
Sent: Thursday, 24 September 2020 4:58 PM
To: Amol Lad <Amol.Lad at 4rf.com>
Cc: frog at lists.frrouting.org
Subject: Re: [FROG] ospfd crashes when deleting a route-map

That version of libyang should be sufficient.  Can we get a full stack decode of ospf crashing then?

On Thu, Sep 24, 2020 at 7:25 AM Amol Lad <Amol.Lad at 4rf.com> wrote:
>
> Hi Donald,
>
> I'm using libyang version 1.0.167. What is recommended libyang version for FRR 7.4 release?
>
> Thanks
>
>
> -----Original Message-----
> From: Donald Sharp <sharpd at cumulusnetworks.com>
> Sent: Thursday, 24 September 2020 4:51 PM
> To: Amol Lad <Amol.Lad at 4rf.com>
> Cc: frog at lists.frrouting.org
> Subject: Re: [FROG] ospfd crashes when deleting a route-map
>
> Amol -
>
> I'm not seeing this when I try to run.  What version of libyang are you using?
>
> donald
>
> On Thu, Sep 24, 2020 at 5:22 AM Amol Lad <Amol.Lad at 4rf.com> wrote:
> >
> > Hi,
> >
> > I'm using FRR 7.4 (OpenWrt). I'm not using the integrated-config (i.e. each daemon has it's own config file). Below sequence of commands crashes ospfd. Please advise if any more useful debug information I can provide regarding this issue.
> >
> >
> > ===
> > CRASH-1 [this happens after "no route-map SET_MED permit 10" command 
> > is executed]
> >
> > OSPF[9944]: Received signal 4 at 1772832797 (si_addr 0xffffffffb6f206d0); aborting...
> > OSPF[9944]: in thread vtysh_read scheduled from lib/vty.c:2675
> >
> >
> > FRR(config)# log syslog
> > FRR(config)# debug ospf zebra
> > FRR(config)# debug ospf event
> > FRR(config)# debug ospf ism
> > FRR(config)# do show running-config
> > Building configuration...
> >
> > Current configuration:
> > !
> > frr version 7.4
> > frr defaults traditional
> > log syslog
> > hostname FRR
> > !
> > line vty
> > !
> > End
> >
> > FRR(config)# route-map SET_MED permit 10 FRR(config-route-map)# set 
> > metric 3333 FRR(config-route-map)# exit FRR(config)# no route-map 
> > SET_MED permit 10
> > (** console hangs here for very long time and finally shows below 
> > error **)
> > vtysh: error reading from ospfd: No such file or directory (2)Warning: closing connection to ospfd because of an I/O error!
> > FRR(config)#
> >
> > ===
> > CRASH-2 [this happens after "set metric 1234" command is executed]
> >
> > ripd[9945]: route_set_metric_compile: Metric specified: 1234 is 
> > greater than RIP_METRIC_INFINITY, using INFINITY instead
> > ripngd[9948]: route_set_metric_compile: Metric specified: 1234 is 
> > being converted into METRIC_INFINITY
> > OSPF[9952]: Received signal 11 at 1772834027 (si_addr 0x8); aborting...
> > OSPF[9952]: in thread vtysh_read scheduled from lib/vty.c:2675
> >
> > FRR(config)# log syslog
> > FRR(config)# debug ospf ism
> > FRR(config)# debug ospf event
> > FRR(config)# debug ospf zebra
> > FRR(config)# do show running-config
> > Building configuration...
> >
> > Current configuration:
> > !
> > frr version 7.4
> > frr defaults traditional
> > log syslog
> > hostname FRR
> > !
> > line vty
> > !
> > End
> >
> > FRR(config)# route-map SET_MED permit 10 FRR(config-route-map)# set 
> > metric 1234
> > (** console hangs here for very long time and finally shows below 
> > error **)
> > vtysh: error reading from ospfd: No such file or directory (2)Warning: closing connection to ospfd because of an I/O error!
> > AprisaLTE(config-route-map)#
> >
> > ==
> >
> > root at AprisaLTE:/# cat /etc/frr/daemons # The watchfrr and zebra 
> > daemons are always started.
> > #
> > bgpd=yes
> > ospfd=yes
> > #ospfd_instances=1,20
> > ospf6d=yes
> > ripd=yes
> > ripngd=yes
> > isisd=no
> > pimd=no
> > ldpd=no
> > nhrpd=yes
> > eigrpd=yes
> > babeld=no
> > sharpd=no
> > pbrd=no
> > bfdd=no
> > fabricd=no
> > vrrpd=no
> >
> > #
> > # If this option is set the /etc/init.d/frr script automatically 
> > loads # the config via "vtysh -b" when the servers are started.
> > # Check /etc/pam.d/frr if you intend to use "vtysh"!
> > #
> > vtysh_enable=yes
> > zebra_options="  -A 127.0.0.1 -s 90000000 -f /opt/conf/openwrt/etc/frr/zebra.conf"
> > bgpd_options="   -A 127.0.0.1 -f /opt/conf/openwrt/etc/frr/bgpd.conf"
> > ospfd_options="  -A 127.0.0.1 -f /opt/conf/openwrt/etc/frr/ospfd.conf"
> > ospf6d_options=" -A ::1 -f /opt/conf/openwrt/etc/frr/ospf6d.conf"
> > ripd_options="   -A 127.0.0.1 -f /opt/conf/openwrt/etc/frr/ripd.conf"
> > ripngd_options=" -A ::1 -f /opt/conf/openwrt/etc/frr/ripngd.conf"
> > isisd_options="  -A 127.0.0.1"
> > pimd_options="   -A 127.0.0.1"
> > ldpd_options="   -A 127.0.0.1 -f /opt/conf/openwrt/etc/frr/ldpd.conf"
> > nhrpd_options="  -A 127.0.0.1 -f /opt/conf/openwrt/etc/frr/nhrpd.conf"
> > eigrpd_options=" -A 127.0.0.1 -f /opt/conf/openwrt/etc/frr/eigrpd.conf"
> > babeld_options=" -A 127.0.0.1"
> > sharpd_options=" -A 127.0.0.1"
> > pbrd_options="   -A 127.0.0.1 -f /opt/conf/openwrt/etc/frr/pbrd.conf"
> > staticd_options="-A 127.0.0.1 -f /opt/conf/openwrt/etc/frr/staticd.conf"
> > bfdd_options="   -A 127.0.0.1 -f /opt/conf/openwrt/etc/frr/bfdd.conf"
> > fabricd_options="-A 127.0.0.1"
> > vrrpd_options="  -A 127.0.0.1"
> >
> > # The list of daemons to watch is automatically generated by the init script.
> > #watchfrr_options=""
> >
> > # for debugging purposes, you can specify a "wrap" command to start 
> > instead # of starting the daemon directly, e.g. to use valgrind on ospfd:
> > #   ospfd_wrap="/usr/bin/valgrind"
> > # or you can use "all_wrap" for all daemons, e.g. to use perf record:
> > #   all_wrap="/usr/bin/perf record --call-graph -"
> > # the normal daemon command is added to this at the end.
> > _______________________________________________
> > frog mailing list
> > frog at lists.frrouting.org
> > https://lists.frrouting.org/listinfo/frog
> ________________________________
> The information in this email communication (inclusive of attachments) is confidential to 4RF Limited and the intended recipient(s). If you are not the intended recipient(s), please note that any use, disclosure, distribution or copying of this information or any part thereof is strictly prohibited and that the author accepts no liability for the consequences of any action taken on the basis of the information provided. If you have received this email in error, please notify the sender immediately by return email and then delete all instances of this email from your system. 4RF Limited will not accept responsibility for any consequences associated with the use of this email (including, but not limited to, damages sustained as a result of any viruses and/or any action or lack of action taken in reliance on it).


More information about the frog mailing list