This is an automated email from the ASF dual-hosted git repository.

alex-plekhanov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new f05eda20dd4 IGNITE-28771 Fix JVM crash on node stop and concurrent PME 
(#13237)
f05eda20dd4 is described below

commit f05eda20dd43c8272d9e7955b2863fc8ae092ed3
Author: Aleksey Plekhanov <[email protected]>
AuthorDate: Mon Jun 15 17:56:01 2026 +0300

    IGNITE-28771 Fix JVM crash on node stop and concurrent PME (#13237)
---
 .../preloader/GridDhtPartitionsExchangeFuture.java | 26 ++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 59d3df1e456..5c0dc84875a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -3651,6 +3651,9 @@ public class GridDhtPartitionsExchangeFuture extends 
GridDhtTopologyFutureAdapte
      * @param sndResNodes Additional nodes to send finish message to.
      */
     private void onAllReceived(@Nullable Collection<ClusterNode> sndResNodes) {
+        if (!enterBusy())
+            return;
+
         try {
             initFut.get();
 
@@ -3704,6 +3707,9 @@ public class GridDhtPartitionsExchangeFuture extends 
GridDhtTopologyFutureAdapte
             else
                 onDone(e);
         }
+        finally {
+            leaveBusy();
+        }
     }
 
     /**
@@ -3757,7 +3763,15 @@ public class GridDhtPartitionsExchangeFuture extends 
GridDhtTopologyFutureAdapte
                     cctx.kernalContext().pools().getSystemExecutorService(),
                     cctx.affinity().cacheGroups().values(),
                     desc -> {
-                        partitionTopology(desc.groupId()).beforeExchange(this, 
true, true);
+                        if (!enterBusy())
+                            return null;
+
+                        try {
+                            
partitionTopology(desc.groupId()).beforeExchange(this, true, true);
+                        }
+                        finally {
+                            leaveBusy();
+                        }
 
                         return null;
                     });
@@ -3774,7 +3788,15 @@ public class GridDhtPartitionsExchangeFuture extends 
GridDhtTopologyFutureAdapte
                 cctx.kernalContext().pools().getSystemExecutorService(),
                 msgs.values(),
                 msg -> {
-                    processSingleMessageOnCrdFinish(msg, joinedNodeAff);
+                    if (!enterBusy())
+                        return null;
+
+                    try {
+                        processSingleMessageOnCrdFinish(msg, joinedNodeAff);
+                    }
+                    finally {
+                        leaveBusy();
+                    }
 
                     return null;
                 }

Reply via email to