ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrey Aleksandrov (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-8243) Possible memory leak at ExchangeLatchManager during dynamic creating/removing of the local caches
Date Fri, 13 Apr 2018 06:59:00 GMT
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)

Mime
View raw message