[erlang-patches] [PATCH] fix EST leak in snmp_note_store
Stefan Grundmann
sg2342@REDACTED
Mon Nov 7 17:28:31 CET 2011
fix GC timer in snmp_note_store
in deactivate_timer/1 the new state of the timer is not set correctly,
instead the timeout value set to 'false', resulting in a "crash loop"
when the snmp note store process tries to restart the timer process.
the incorrect activation state also leads to an ETS memory leak:
an expired note will not get deleted except when
snmp_note_store:get_note/2 is called with its key - the GC mechanism
does not work because a deactivated timer will never be activated again.
Commit that corrects this issue:
git fetch git://github.com/sg2342/otp.git fix-snmp_note_store_timer
Inline diff:
diff --git a/lib/snmp/src/misc/snmp_note_store.erl
b/lib/snmp/src/misc/snmp_note
index a21a620..5bb5cb4 100644
--- a/lib/snmp/src/misc/snmp_note_store.erl
+++ b/lib/snmp/src/misc/snmp_note_store.erl
@@ -282,7 +282,7 @@ deactivate_timer(#state{timer = Pid, active = true} =
State)
receive
deactivated -> ok
end,
- State#state{timeout = false};
+ State#state{active = false};
deactivate_timer(State) ->
State.
Regression test:
git fetch git://github.com/sg2342/otp.git snmp_note_store_timer-tc
best regards
Stefan Grundmann
More information about the erlang-patches
mailing list