[ 
https://issues.apache.org/jira/browse/IGNITE-12654?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17034470#comment-17034470
 ] 

Ignite TC Bot commented on IGNITE-12654:
----------------------------------------

{panel:title=Branch: [pull/7399/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
[TeamCity *--> Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=5040481&buildTypeId=IgniteTests24Java8_RunAll]

> Some of rentingFutures in GridDhtPartitionTopologyImpl may accumulate a huge 
> number of eviction callbacks
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-12654
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12654
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.8
>            Reporter: Vyacheslav Koptilin
>            Assignee: Vyacheslav Koptilin
>            Priority: Major
>             Fix For: 2.9
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Example of heap dump:
> ||Class Name||Shallow Heap||Retained Heap||
> |top 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopologyImpl
>  @ 0x809f03d0|88|1 381 118 968|
> |grp org.apache.ignite.internal.processors.cache.CacheGroupContext @ 
> 0x809f04c8|96|1 381 121 912|
> |locParts java.util.concurrent.atomic.AtomicReferenceArray @ 0x81656c30|16|1 
> 380 925 496|
> |array java.lang.Object[1024] @ 0x81656c40|4 112|1 380 925 480|
> |org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition
>  @ 0xb5f2bcd8|24|318 622 384|
> |org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition
>  @ 0xb5f28d90|96|318 618 624|
> |org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition
>  @ 0xb5ed4ac8|24|318 618 576|
> |org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition
>  @ 0xb5f2e7f8|24|318 618 528|
> |grp org.apache.ignite.internal.processors.cache.CacheGroupContext @ 
> 0x809f04c8|96|1 381 121 912|
> |state org.apache.ignite.internal.util.future.GridFutureAdapter$Node @ 
> 0xe8ed4cd0|24|318 618 624|
> |val 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopologyImpl$$Lambda$58
>  @ 0xe8ed4cb8|24|24|
> |arg$1 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopologyImpl
>  @ 0x809f03d0|88|1 381 118 968|
> The number of {{GridFutureAdapter$Node}}'s and 
> {{GridDhtPartitionTopologyImpl$$Lambda$58}}'s looks weird. It seems that the 
> following code is the root cause:
> {code:java|title=GridDhtPartitionTopologyImpl.java}
>     /**
>      * Finds local partitions which don't belong to affinity and runs 
> eviction process for such partitions.
>      *
>      * @param updateSeq Update sequence.
>      * @param aff Affinity assignments.
>      * @return {@code True} if there are local partitions need to be evicted.
>      */
>     private boolean checkEvictions(long updateSeq, AffinityAssignment aff) {
>        ...
>         // After all rents are finished resend partitions.
>         if (!rentingFutures.isEmpty()) {
>             final AtomicInteger rentingPartitions = new 
> AtomicInteger(rentingFutures.size());
>             for (IgniteInternalFuture<?> rentingFuture : rentingFutures) {
>                 rentingFuture.listen(f -> {
>                     int remaining = rentingPartitions.decrementAndGet();
>                     if (remaining == 0) {
>                         lock.writeLock().lock();
>                         try {
>                             this.updateSeq.incrementAndGet();
>                             if (log.isDebugEnabled())
>                                 log.debug("Partitions have been scheduled to 
> resend [reason=" +
>                                     "Evictions are done [grp=" + 
> grp.cacheOrGroupName() + "]");
>                             ctx.exchange().scheduleResendPartitions();
>                         }
>                         finally {
>                             lock.writeLock().unlock();
>                         }
>                     }
>                 });
>             }
>         }
>         return hasEvictedPartitions;
>     }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to