[ 
https://issues.apache.org/jira/browse/IGNITE-27919?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman Puchkovskiy updated IGNITE-27919:
---------------------------------------
    Description: 
If a node gets stopped during an attempt to switch a write intent, an exception 
like the following one may be logged:
 
{noformat}
[2026-02-19T17:21:30,144][INFO 
][%ibiwiht_wiftawwfttfsnbi_3344%partition-operations-24][WriteIntentSwitchProcessor]
 Failed to switch write intents for txn 
[txId=019c760f-8726-0000-b6cb-6aef00000001].
java.util.concurrent.CompletionException: 
org.apache.ignite.tx.TransactionException: IGN-CMN-1 Failed to get the primary 
replica [zonePartitionId=20_part_0, awaitTimestamp=HybridTimestamp 
[physical=2026-02-19 13:21:30:142 +0000, logical=0, 
composite=116097501766746112]] TraceId:f76bc29c
        at 
java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
        at 
java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
        at 
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:932)
        at 
java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
        at 
java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2268)
        at 
org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:101)
        at 
org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:91)
        at 
org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:72)
        at 
org.apache.ignite.internal.tx.impl.WriteIntentSwitchProcessor.switchWriteIntentsWithRetry(WriteIntentSwitchProcessor.java:88)
        at 
org.apache.ignite.internal.tx.impl.WriteIntentSwitchProcessor.lambda$switchWriteIntentsWithRetry$1(WriteIntentSwitchProcessor.java:100)
        at 
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
        at 
java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire$$$capture(CompletableFuture.java:907)
        at 
java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java)
        at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
        at 
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2090)
        at 
org.apache.ignite.internal.replicator.ReplicaService.lambda$sendToReplicaRaw$1(ReplicaService.java:157)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.ignite.tx.TransactionException: Failed to get the primary 
replica [zonePartitionId=20_part_0, awaitTimestamp=HybridTimestamp 
[physical=2026-02-19 13:21:30:142 +0000, logical=0, 
composite=116097501766746112]]
        at 
org.apache.ignite.internal.util.ExceptionUtils.lambda$withCause$1(ExceptionUtils.java:541)
        at 
org.apache.ignite.internal.util.ExceptionUtils.withCauseInternal(ExceptionUtils.java:603)
        at 
org.apache.ignite.internal.util.ExceptionUtils.withCause(ExceptionUtils.java:541)
        at 
org.apache.ignite.internal.tx.impl.PlacementDriverHelper.lambda$awaitPrimaryReplicaWithExceptionHandling$0(PlacementDriverHelper.java:105)
        at 
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
        ... 16 more
Caused by: org.apache.ignite.internal.lang.NodeStoppingException: Operation has 
been cancelled (node is stopping).
        at 
org.apache.ignite.internal.util.IgniteUtils.inBusyLockAsync(IgniteUtils.java:943)
        at 
org.apache.ignite.internal.placementdriver.leases.LeaseTracker.awaitPrimaryReplica(LeaseTracker.java:275)
        at 
org.apache.ignite.internal.placementdriver.PlacementDriverManager$1.awaitPrimaryReplica(PlacementDriverManager.java:350)
        at 
org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:100)
        ... 13 more
{noformat}
 
The exception is by itself useless and just clogs the log.

  was:
If a node gets stopped during an attempt to switch a write intent, an exception 
like the following one may be logged:

 
 
{noformat}
[2026-02-19T17:21:30,144][INFO 
][%ibiwiht_wiftawwfttfsnbi_3344%partition-operations-24][WriteIntentSwitchProcessor]
 Failed to switch write intents for txn 
[txId=019c760f-8726-0000-b6cb-6aef00000001].
java.util.concurrent.CompletionException: 
org.apache.ignite.tx.TransactionException: IGN-CMN-1 Failed to get the primary 
replica [zonePartitionId=20_part_0, awaitTimestamp=HybridTimestamp 
[physical=2026-02-19 13:21:30:142 +0000, logical=0, 
composite=116097501766746112]] TraceId:f76bc29c
        at 
java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
        at 
java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
        at 
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:932)
        at 
java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
        at 
java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2268)
        at 
org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:101)
        at 
org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:91)
        at 
org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:72)
        at 
org.apache.ignite.internal.tx.impl.WriteIntentSwitchProcessor.switchWriteIntentsWithRetry(WriteIntentSwitchProcessor.java:88)
        at 
org.apache.ignite.internal.tx.impl.WriteIntentSwitchProcessor.lambda$switchWriteIntentsWithRetry$1(WriteIntentSwitchProcessor.java:100)
        at 
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
        at 
java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire$$$capture(CompletableFuture.java:907)
        at 
java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java)
        at 
java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
        at 
java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2090)
        at 
org.apache.ignite.internal.replicator.ReplicaService.lambda$sendToReplicaRaw$1(ReplicaService.java:157)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.apache.ignite.tx.TransactionException: Failed to get the primary 
replica [zonePartitionId=20_part_0, awaitTimestamp=HybridTimestamp 
[physical=2026-02-19 13:21:30:142 +0000, logical=0, 
composite=116097501766746112]]
        at 
org.apache.ignite.internal.util.ExceptionUtils.lambda$withCause$1(ExceptionUtils.java:541)
        at 
org.apache.ignite.internal.util.ExceptionUtils.withCauseInternal(ExceptionUtils.java:603)
        at 
org.apache.ignite.internal.util.ExceptionUtils.withCause(ExceptionUtils.java:541)
        at 
org.apache.ignite.internal.tx.impl.PlacementDriverHelper.lambda$awaitPrimaryReplicaWithExceptionHandling$0(PlacementDriverHelper.java:105)
        at 
java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
        ... 16 more
Caused by: org.apache.ignite.internal.lang.NodeStoppingException: Operation has 
been cancelled (node is stopping).
        at 
org.apache.ignite.internal.util.IgniteUtils.inBusyLockAsync(IgniteUtils.java:943)
        at 
org.apache.ignite.internal.placementdriver.leases.LeaseTracker.awaitPrimaryReplica(LeaseTracker.java:275)
        at 
org.apache.ignite.internal.placementdriver.PlacementDriverManager$1.awaitPrimaryReplica(PlacementDriverManager.java:350)
        at 
org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:100)
        ... 13 more
{noformat}
 
The exception is by itself useless and just clogs the log.


> Do not log failure to switch WI due to node stop
> ------------------------------------------------
>
>                 Key: IGNITE-27919
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27919
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Roman Puchkovskiy
>            Assignee: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> If a node gets stopped during an attempt to switch a write intent, an 
> exception like the following one may be logged:
>  
> {noformat}
> [2026-02-19T17:21:30,144][INFO 
> ][%ibiwiht_wiftawwfttfsnbi_3344%partition-operations-24][WriteIntentSwitchProcessor]
>  Failed to switch write intents for txn 
> [txId=019c760f-8726-0000-b6cb-6aef00000001].
> java.util.concurrent.CompletionException: 
> org.apache.ignite.tx.TransactionException: IGN-CMN-1 Failed to get the 
> primary replica [zonePartitionId=20_part_0, awaitTimestamp=HybridTimestamp 
> [physical=2026-02-19 13:21:30:142 +0000, logical=0, 
> composite=116097501766746112]] TraceId:f76bc29c
>       at 
> java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
>       at 
> java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
>       at 
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:932)
>       at 
> java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
>       at 
> java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2268)
>       at 
> org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:101)
>       at 
> org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:91)
>       at 
> org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:72)
>       at 
> org.apache.ignite.internal.tx.impl.WriteIntentSwitchProcessor.switchWriteIntentsWithRetry(WriteIntentSwitchProcessor.java:88)
>       at 
> org.apache.ignite.internal.tx.impl.WriteIntentSwitchProcessor.lambda$switchWriteIntentsWithRetry$1(WriteIntentSwitchProcessor.java:100)
>       at 
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
>       at 
> java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire$$$capture(CompletableFuture.java:907)
>       at 
> java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java)
>       at 
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
>       at 
> java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2090)
>       at 
> org.apache.ignite.internal.replicator.ReplicaService.lambda$sendToReplicaRaw$1(ReplicaService.java:157)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>       at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: org.apache.ignite.tx.TransactionException: Failed to get the 
> primary replica [zonePartitionId=20_part_0, awaitTimestamp=HybridTimestamp 
> [physical=2026-02-19 13:21:30:142 +0000, logical=0, 
> composite=116097501766746112]]
>       at 
> org.apache.ignite.internal.util.ExceptionUtils.lambda$withCause$1(ExceptionUtils.java:541)
>       at 
> org.apache.ignite.internal.util.ExceptionUtils.withCauseInternal(ExceptionUtils.java:603)
>       at 
> org.apache.ignite.internal.util.ExceptionUtils.withCause(ExceptionUtils.java:541)
>       at 
> org.apache.ignite.internal.tx.impl.PlacementDriverHelper.lambda$awaitPrimaryReplicaWithExceptionHandling$0(PlacementDriverHelper.java:105)
>       at 
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
>       ... 16 more
> Caused by: org.apache.ignite.internal.lang.NodeStoppingException: Operation 
> has been cancelled (node is stopping).
>       at 
> org.apache.ignite.internal.util.IgniteUtils.inBusyLockAsync(IgniteUtils.java:943)
>       at 
> org.apache.ignite.internal.placementdriver.leases.LeaseTracker.awaitPrimaryReplica(LeaseTracker.java:275)
>       at 
> org.apache.ignite.internal.placementdriver.PlacementDriverManager$1.awaitPrimaryReplica(PlacementDriverManager.java:350)
>       at 
> org.apache.ignite.internal.tx.impl.PlacementDriverHelper.awaitPrimaryReplicaWithExceptionHandling(PlacementDriverHelper.java:100)
>       ... 13 more
> {noformat}
>  
> The exception is by itself useless and just clogs the log.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to