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;
}