summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2025-03-25 09:01:28 -0400
committerGitHub <noreply@github.com>2025-03-25 09:01:28 -0400
commit90f53f22667887abfc0fdd7f5c78d85fe6dbb2f6 (patch)
treeb4446ff541797e663d8a27da60b0d96d60ccc2f6
parentb02ecbff27fd3332b37241392f723ee1b9ff8f26 (diff)
parentdc7ab1dfc68b24031e959ec49eac1cd3bbd19488 (diff)
Merge pull request #18485 from FRRouting/mergify/bp/stable/10.3/pr-18483
bgpd: Fix holdtime not working properly when busy (backport #18483)
-rw-r--r--bgpd/bgp_fsm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c
index c7a4c6928a..24957204a4 100644
--- a/bgpd/bgp_fsm.c
+++ b/bgpd/bgp_fsm.c
@@ -528,9 +528,11 @@ static void bgp_holdtime_timer(struct event *thread)
frr_with_mutex (&connection->io_mtx) {
inq_count = atomic_load_explicit(&connection->ibuf->count, memory_order_relaxed);
}
- if (inq_count)
+ if (inq_count) {
BGP_TIMER_ON(connection->t_holdtime, bgp_holdtime_timer,
peer->v_holdtime);
+ return;
+ }
EVENT_VAL(thread) = Hold_Timer_expired;
bgp_event(thread); /* bgp_event unlocks peer */