apache / apache/ignite

NullPointerException during Client Node Join in Apache Ignite 2.15.0

Open
#11,983 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
5.1k
Forks
1.9k
Avg merge
3d 2h
Merged PRs (30d)
46

Description

NullPointerException during Client Node Join in Apache Ignite 2.15.0

**Environment:**
Apache Ignite Version: 2.15.0
Cluster Size: 14 server nodes, 4 client nodes
Deployment: Dockerized nodes with host networking
JDK: Java 17
OS: RHEL 9

**Summary**
When a client node attempts to join an existing Apache Ignite cluster, a NullPointerException is thrown during the partition map exchange phase. The error occurs in GridCachePartitionExchangeManager.clientTopology, where it attempts to invoke .config() on a null CacheGroupDescriptor.

**Error Logs**
`04-04-2025 19:59:10.857 [sys-#86] ERROR ROOT.? - Critical system error detected. Will be handled accordingly to configured handler [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext [type=CRITICAL_ERROR, err=java.lang.NullPointerException: Cannot invoke "o.a.i.i.processors.cache.CacheGroupDescriptor.config()" because "grpDesc" is null]]
java.lang.NullPointerException: Cannot invoke "org.apache.ignite.internal.processors.cache.CacheGroupDescriptor.config()" because "grpDesc" is null
at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager.clientTopology(GridCachePartitionExchangeManager.java:1055)
at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.lambda$updatePartitionFullMap$81bdb8e8$1(GridDhtPartitionsExchangeFuture.java:4831)
at org.apache.ignite.internal.util.IgniteUtils.lambda$null$3(IgniteUtils.java:11609)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Suppressed: java.lang.NullPointerException: Cannot invoke "org.apache.ignite.internal.processors.cache.CacheGroupDescriptor.config()" because "grpDesc" is null
... 7 common frames omitted
04-04-2025 19:59:10.899 [sys-#86] ERROR ROOT.? - JVM will be halted immediately due to the failure: [failureCtx=FailureContext [type=CRITICAL_ERROR, err=java.lang.NullPointerException: Cannot invoke "o.a.i.i.processors.cache.CacheGroupDescriptor.config()" because "grpDesc" is null]]
`
**Reproduction Steps**
Start a cluster with 14 server nodes.
Try joining 4 client nodes in parallel as the cluster is coming up.

**Impact**
Prevents successful join of client nodes during topology changes.

**Expected Behavior**
Client node should be able to join and complete partition exchange without encountering NullPointerException.

Contributor guide

Open the contributing guide

Research direction

Start in org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager.java at clientTopology, then trace the partition exchange call from GridDhtPartitionsExchangeFuture.updatePartitionFullMap. Reproduce with 14 server nodes and four client nodes joining in parallel during cluster startup. Done means client nodes complete partition exchange without the reported NullPointerException.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.