Andrey Aleksandrov created IGNITE-8243:
------------------------------------------
Summary: Possible memory leak at ExchangeLatchManager during
dynamic creating/removing of the local caches
Key: IGNITE-8243
URL: https://issues.apache.org/jira/browse/IGNITE-8243
Project: Ignite
Issue Type: Bug
Affects Versions: 2.5
Reporter: Andrey Aleksandrov
Attachments: image.png, reproducer.java
Reproducer was attached. Memory analizer report was attached too.
Looks like that next collection never removes its items in case of dynamic
creating/removing of the local caches:
/** Server latches collection. */
private final ConcurrentMap<T2<String, AffinityTopologyVersion>, ServerLatch>
serverLatches = new ConcurrentHashMap<>();
To see it you can modify source code a little:
private Latch createServerLatch(String id, AffinityTopologyVersion topVer,
Collection<ClusterNode> participants) {
final T2<String, AffinityTopologyVersion> latchId = new T2<>(id, topVer);
if (serverLatches.containsKey(latchId))
return serverLatches.get(latchId);
ServerLatch latch = new ServerLatch(id, topVer, participants);
serverLatches.put(latchId, latch);
if (log.isDebugEnabled())
log.debug("Server latch is created [latch=" + latchId + ", participantsSize="
+ participants.size() + "]");
log.error("Server latch is created [size=" + serverLatches.size() +
", latchId = " + latchId + "]");
And add some breakpoints in places where removing can be done.
Log should be like that:
[2018-04-13 09:55:44,911][ERROR][exchange-worker-#42][ExchangeLatchManager]
Server latch is created [size=1990, latchId = IgniteBiTuple [val1=exchange,
val2=AffinityTopologyVersion [topVer=1, minorTopVer=1989]]]
[2018-04-13 09:55:44,911][ERROR][exchange-worker-#42][ExchangeLatchManager]
Server latch is created [size=1991, latchId = IgniteBiTuple [val1=exchange,
val2=AffinityTopologyVersion [topVer=1, minorTopVer=1990]]]
[2018-04-13 09:55:44,911][ERROR][exchange-worker-#42][ExchangeLatchManager]
Server latch is created [size=1992, latchId = IgniteBiTuple [val1=exchange,
val2=AffinityTopologyVersion [topVer=1, minorTopVer=1991]]]
[2018-04-13 09:55:44,926][ERROR][exchange-worker-#42][ExchangeLatchManager]
Server latch is created [size=1993, latchId = IgniteBiTuple [val1=exchange,
val2=AffinityTopologyVersion [topVer=1, minorTopVer=1992]]]
[2018-04-13 09:55:44,926][ERROR][exchange-worker-#42][ExchangeLatchManager]
Server latch is created [size=1994, latchId = IgniteBiTuple [val1=exchange,
val2=AffinityTopologyVersion [topVer=1, minorTopVer=1993]]]
[2018-04-13 09:55:44,926][ERROR][exchange-worker-#42][ExchangeLatchManager]
Server latch is created [size=1995, latchId = IgniteBiTuple [val1=exchange,
val2=AffinityTopologyVersion [topVer=1, minorTopVer=1994]]]
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)