echoeslove opened a new issue, #13282:
URL: https://github.com/apache/ignite/issues/13282
I am running an application with **Apache Ignite 3** (implied by the
`org.apache.ignite.internal` package structure) and experiencing high memory
usage / `OutOfMemoryError`.
To investigate, I took a Java heap histogram using `jcmd`/`jmap`. The
results show a massive number of instances (~7.45 million) correlated across
several standard Java classes and Ignite internal classes.
Here is the top part of the heap histogram:
```text
num #instances #bytes class name (module)
-------------------------------------------------------
1: 7521853 727150840 [Ljava.lang.Object; ([email protected])
2: 7456001 596505648 [Ljava.util.HashMap$Node;
([email protected])
3: 7455079 357843792 java.util.HashMap ([email protected])
4: 9388272 300424704
java.util.concurrent.ConcurrentHashMap$Node ([email protected])
5: 9335795 298745440 java.util.UUID ([email protected])
6: 7450168 298006720 java.util.EnumMap ([email protected])
7: 7468385 238988320 java.util.HashMap$Node
([email protected])
8: 7452120 178850880 java.util.concurrent.CompletableFuture
([email protected])
9: 7450136 178803264
org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener$OperationId
10: 7450136 119202176
org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener$TxCleanupReadyFutureList
11: 1881021 90289008
org.apache.ignite.internal.tx.TxStateMeta
14: 1881756 45162144
org.apache.ignite.internal.replicator.ZonePartitionId
```
### Observations:
* There are exactly **~7.45 million** instances of `CompletableFuture`,
`HashMap`, `EnumMap`, and `UUID`.
* This number perfectly matches Ignite's internal classes:
`PartitionReplicaListener$OperationId` and
`PartitionReplicaListener$TxCleanupReadyFutureList`.
* It seems like a huge backlog of transaction cleanups or replica operations
are being held in memory and never released.
### My Environment:
* **Java Version:** 25.0.1 (as seen in the log)
* **Ignite Version:** Ignite 3 (Beta/RC or stable version depending on your
setup)
* **Deployment:** Using K8S,cluster has 3 nodes
### Questions:
1. What could cause `PartitionReplicaListener` futures
(`TxCleanupReadyFutureList`) or `OperationId` to accumulate like this without
being garbage collected?
2. Is this a known issue/bug in Apache Ignite 3 regarding transaction or
replication context cleanup?
3. Are there any specific configuration parameters (e.g., transaction
timeouts, replication parameters) I should tune to prevent this build-up?
Any guidance on how to debug this further or configuration fixes would be
highly appreciated.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]