frr
frr copied to clipboard
ospfd:reset wait timer when reading ip ospf dead-interval
The fix addressed the issue found at https://github.com/FRRouting/frr/issues/16905. In the fix, after reconfiguring the dead-interval, the waitTimer, like the helloTimer, will refresh immediately.
In the current OSPF implementation, after configuring the ip ospf dead-interval, the waitTimer does not refresh immediately but waits for the waitTimer to expire before being reconfigured.
In issue 16905, when we configure the waitTimer to a very large value and then clear the OSPF process using clear ip ospf process, the waitTimer is forcibly reset and will wait for this large value until it expires.At this point, configuring a very small value for the dead-interval will not take effect immediately, which results in having to wait a long time. It appears as though the state is stuck.Therefore, if the configured dead-interval is large, we have to use clear ip ospf process each time to refresh the waitTimer.
Please fix
Verify Source(check) issues.
ok
@aceelindem is it good now?
I think we're waiting on blocking changes from @aceelindem ?
failures in pim ... rerunning to see if we can clear these
still failing in pim ... might need to be rebased?
@Mergifyio rebase
rebase
✅ Branch has been successfully rebased
looks like we have a new crash that needs to be resolved:
CORE FOUND: r2: ospfd crashed: see log for backtrace and more```
hmmm... current failure seems unrelated, let's try again ... ci:rerun
still seeing cores with this ... I don't know that it's related, but ... :-(
@Mergifyio rebase
let's try rebasing to see if we can clear this core ...
rebase
✅ Branch has been successfully rebased
multicast_pim_dr_nondr_test/test_pim_dr_nondr_with_transit_router_topo3.py::test_mroute_when_transit_router_present_between_rp_and_source_dr_p1
So not related ... I'll keep retrying to see if we can get a clean run
still getting cores, so ... :-(
E Failed: New core[s] found: /tmp/topotests/ospf_basic_functionality.test_ospf_single_area/r1/ospfd_core-sig_11-pid_707.dmp, /tmp/topotests/ospf_basic_functionality.test_ospf_single_area/r0/ospfd_core-sig_11-pid_599.dmp
@Mergifyio rebase still trying to clear this crash ...
rebase
✅ Branch has been successfully rebased
@Mergifyio rebase
rebase
✅ Branch has been successfully rebased
Failing to build?
-- | --
08-Jul-2025 12:55:38 | ospfd/ospf_vty.c:8103:33: error: implicit declaration of function ‘EVENT_OFF’; did you mean ‘EVENT_FD’? [-Werror=implicit-function-declaration]
08-Jul-2025 12:55:38 | 8103 \| EVENT_OFF(oi->t_wait);
08-Jul-2025 12:55:38 | \| ^~~~~~~~~
08-Jul-2025 12:55:38 | \| EVENT_FD
trying to rebuild to see if we can clear this
ci:rerun
I think these need to be fixed before it will build ...
EVENT_OFF(oi->t_wait);
^~~~~~~~~
EVENT_FD
CC ospf6d/ospf6_nssa.o
cc1: all warnings being treated as errors
CC ospf6d/ospf6_area.o
make[1]: *** [Makefile:10968: ospfd/ospf_vty.o] Error 1
CC ospf6d/ospf6_asbr.o
CC ospf6d/ospf6_gr.o
CC ospf6d/ospf6_gr_helper.o
CC ospf6d/ospf6_interface.o
CC ospf6d/ospf6_lsa.o
CC ospf6d/ospf6_neighbor.o
CC ospf6d/ospf6_route.o
ospf6d/ospf6_route.c: In function ‘ospf6_route_show’:
ospf6d/ospf6_route.c:1173:3: warning: ‘json_object_object_get’ is deprecated [-Wdeprecated-declarations]
json_routes_array = json_object_object_get(json_routes, destination);
^~~~~~~~~~~~~~~~~
In file included from /usr/include/json-c/linkhash.h:16,
from /usr/include/json-c/json.h:22,
from ./lib/json.h:15,
from ospf6d/ospf6_lsa.h:9,
from ospf6d/ospf6_route.c:17:
/usr/include/json-c/json_object.h:290:1: note: declared here
THIS_FUNCTION_IS_DEPRECATED(extern struct json_object* json_object_object_get(struct json_object* obj,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
ospf6d/ospf6_route.c: In function ‘ospf6_route_show_detail’:
ospf6d/ospf6_route.c:1372:3: warning: ‘json_object_object_get’ is deprecated [-Wdeprecated-declarations]
json_routes_array = json_object_object_get(json_routes, destination);
^~~~~~~~~~~~~~~~~
In file included from /usr/include/json-c/linkhash.h:16,
from /usr/include/json-c/json.h:22,
from ./lib/json.h:15,
from ospf6d/ospf6_lsa.h:9,
from ospf6d/ospf6_route.c:17:
/usr/include/json-c/json_object.h:290:1: note: declared here
THIS_FUNCTION_IS_DEPRECATED(extern struct json_object* json_object_object_get(struct json_object* obj,```
The deprecated json call really needs to be fixed before we can merge this.
This pull request has conflicts, please resolve those before we can evaluate the pull request.