File 0802-snmp-agent-More-discovery-cleanup.patch of Package erlang
From 02f9f882fcfdbe7cdcf9b4333511d3e4b871e212 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Fri, 1 Nov 2019 15:07:53 +0100
Subject: [PATCH] [snmp|agent] More discovery cleanup
The request cache needed some more cleanup to not fill
upp with old discovery requests (Asko Husso).
OTP-16228
---
lib/snmp/src/agent/snmpa_net_if.erl | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/lib/snmp/src/agent/snmpa_net_if.erl b/lib/snmp/src/agent/snmpa_net_if.erl
index 730d096920..c1f7c6b424 100644
--- a/lib/snmp/src/agent/snmpa_net_if.erl
+++ b/lib/snmp/src/agent/snmpa_net_if.erl
@@ -736,7 +736,7 @@ handle_discovery_response(
%% XXX Strange... Reqs from this Pid should be reaped
%% at process exit by clear_reqs/2 so the following
%% should be redundant.
- NReqs = lists:keydelete(ReqId, 1, Reqs),
+ NReqs = lists:keydelete(ReqId, 1, Reqs -- [{0, Pid}]), % ERIERL-427
S#state{reqs = NReqs};
%% <OTP-16207>
@@ -1209,8 +1209,9 @@ handle_disk_log(_Log, _Info, State) ->
clear_reqs(Pid, S) ->
- NReqs = lists:keydelete(Pid, 2, S#state.reqs),
- S#state{reqs = NReqs}.
+ NReqs = lists:keydelete(Pid, 2, S#state.reqs),
+ NReqs2 = NReqs -- [{0, Pid}], % ERIERL-427
+ S#state{reqs = NReqs2}.
toname(P) when is_pid(P) ->
--
2.16.4