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)