From b0717215c9311e95b88e28f68a96f7b24f875a2d Mon Sep 17 00:00:00 2001 From: batmancn Date: Mon, 30 Nov 2020 20:04:44 +0800 Subject: [PATCH] zebra: bugfix of error quit of zebra, due to no nexthop ACTIVE There exists some rare situations where fpm will attempt to send a route update with no valid nexthops. In that case an assert would be hit. This is not good for trying to keep your routing daemons up and running when we can safely just recover the situation. Fixes #7588 Signed-off-by: batmancn Signed-off-by: Donald Sharp (cherry picked from commit 5306e6cf00c58a4c4558609d623ecbbd79faabf1) --- zebra/zebra_fpm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/zebra/zebra_fpm.c b/zebra/zebra_fpm.c index 07a82886056b..855e19dc453b 100644 --- a/zebra/zebra_fpm.c +++ b/zebra/zebra_fpm.c @@ -1002,7 +1002,6 @@ static int zfpm_build_route_updates(void) data_len = zfpm_encode_route(dest, re, (char *)data, buf_end - data, &msg_type); - assert(data_len); if (data_len) { hdr->msg_type = msg_type; msg_len = fpm_data_len_to_msg_len(data_len); @@ -1013,6 +1012,9 @@ static int zfpm_build_route_updates(void) zfpm_g->stats.route_adds++; else zfpm_g->stats.route_dels++; + } else { + zlog_err("%s: Encoding Prefix: %pRN No valid nexthops", + __func__, dest->rnode); } }