From: Otto Moerbeek Date: Fri, 1 Mar 2024 13:31:10 +0000 (+0100) Subject: rec: partial backport of 13830 to rec-5.0.x: reduce RPZ memory usage X-Git-Tag: rec-5.0.3~1^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F13846%2Fhead;p=thirdparty%2Fpdns.git rec: partial backport of 13830 to rec-5.0.x: reduce RPZ memory usage --- diff --git a/pdns/recursordist/rec-main.cc b/pdns/recursordist/rec-main.cc index 954eb76ed6..69b2a56128 100644 --- a/pdns/recursordist/rec-main.cc +++ b/pdns/recursordist/rec-main.cc @@ -2750,8 +2750,7 @@ static void recursorThread() } } - unsigned int ringsize = ::arg().asNum("stats-ringbuffer-entries") / RecThreadInfo::numUDPWorkers(); - if (ringsize != 0) { + if (unsigned int ringsize = ::arg().asNum("stats-ringbuffer-entries") / RecThreadInfo::numUDPWorkers(); ringsize != 0) { t_remotes = std::make_unique(); if (RecThreadInfo::weDistributeQueries()) { t_remotes->set_capacity(::arg().asNum("stats-ringbuffer-entries") / RecThreadInfo::numDistributors()); @@ -2778,14 +2777,16 @@ static void recursorThread() g_multiTasker = std::make_unique(::arg().asNum("stack-size"), ::arg().asNum("stack-cache-size")); threadInfo.setMT(g_multiTasker.get()); - /* start protobuf export threads if needed */ - auto luaconfsLocal = g_luaconfs.getLocal(); - checkProtobufExport(luaconfsLocal); - checkOutgoingProtobufExport(luaconfsLocal); + { + /* start protobuf export threads if needed, don;'t keep a ref to lua config around */ + auto luaconfsLocal = g_luaconfs.getLocal(); + checkProtobufExport(luaconfsLocal); + checkOutgoingProtobufExport(luaconfsLocal); #ifdef HAVE_FSTRM - checkFrameStreamExport(luaconfsLocal, luaconfsLocal->frameStreamExportConfig, t_frameStreamServersInfo); - checkFrameStreamExport(luaconfsLocal, luaconfsLocal->nodFrameStreamExportConfig, t_nodFrameStreamServersInfo); + checkFrameStreamExport(luaconfsLocal, luaconfsLocal->frameStreamExportConfig, t_frameStreamServersInfo); + checkFrameStreamExport(luaconfsLocal, luaconfsLocal->nodFrameStreamExportConfig, t_nodFrameStreamServersInfo); #endif + } t_fdm = unique_ptr(getMultiplexer(log));