[jira] [Updated] (IGNITE-22033) Replace PlacementDriver#currentLease with #getPrimaryReplica in ReadWriteTxContext#waitReadyToFinish

2024-04-12 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-22033:
--
Attachment: _Integration_Tests_Module_Runner_24658_.log

> Replace PlacementDriver#currentLease with #getPrimaryReplica in 
> ReadWriteTxContext#waitReadyToFinish
> 
>
> Key: IGNITE-22033
> URL: https://issues.apache.org/jira/browse/IGNITE-22033
> Project: Ignite
>  Issue Type: Bug
>Reporter: Denis Chudov
>Priority: Major
>  Labels: ignite-3
> Attachments: _Integration_Tests_Module_Runner_24658_.log
>
>
> #currentLease can return null in a case when there is no lease information on 
> the current node yet, while the lease may already exist on another node. This 
> can lead to 
> PrimaryReplicaExpiredException.
> Seems that we've already seen such exceptions on TC:
>  
> {code:java}
> Caused by: org.apache.ignite.internal.tx.impl.PrimaryReplicaExpiredException: 
> IGN-TX-13 TraceId:2766fa1f-a00e-4c53-b556-7d06fc116229 Primary replica has 
> expired, transaction will be rolled back: [groupId = 59_part_11, expected 
> enlistment consistency token = 112211838526816298, commit timestamp = null, 
> current primary replica = null]
>     at 
> app//org.apache.ignite.internal.tx.impl.TransactionInflights$ReadWriteTxContext.waitReadyToFinish(TransactionInflights.java:271)
>     at 
> app//org.apache.ignite.internal.tx.impl.TransactionInflights$ReadWriteTxContext.performFinish(TransactionInflights.java:229)
>     at 
> app//org.apache.ignite.internal.tx.impl.TxManagerImpl.finish(TxManagerImpl.java:501)
>     at 
> app//org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finishInternal(ReadWriteTransactionImpl.java:161)
>     at 
> app//org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finish(ReadWriteTransactionImpl.java:140)
>     at 
> app//org.apache.ignite.internal.tx.impl.IgniteAbstractTransactionImpl.commitAsync(IgniteAbstractTransactionImpl.java:98)
>     at 
> app//org.apache.ignite.internal.sql.engine.tx.QueryTransactionWrapperImpl.commitImplicit(QueryTransactionWrapperImpl.java:46)
>     at 
> app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$closeAsync$3(AsyncSqlCursorImpl.java:132)
>     at 
> java.base@11.0.17/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
>     at 
> java.base@11.0.17/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235)
>     at 
> app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.closeAsync(AsyncSqlCursorImpl.java:132)
>     at 
> app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$requestNextAsync$2(AsyncSqlCursorImpl.java:101)
>     at 
> java.base@11.0.17/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
>     at 
> java.base@11.0.17/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
>     at 
> java.base@11.0.17/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2266)
>     at 
> app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.requestNextAsync(AsyncSqlCursorImpl.java:94)
>     at 
> app//org.apache.ignite.internal.sql.api.IgniteSqlImpl.lambda$executeAsyncInternal$4(IgniteSqlImpl.java:360)
>     at 
> java.base@11.0.17/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
>     at 
> java.base@11.0.17/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
>     at 
> java.base@11.0.17/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
>     at 
> app//org.apache.ignite.internal.sql.engine.SqlQueryProcessor$PrefetchCallback.onPrefetchComplete(SqlQueryProcessor.java:1050)
>     at 
> app//org.apache.ignite.internal.sql.engine.prepare.KeyValueModifyPlan.lambda$execute$3(KeyValueModifyPlan.java:141)
>     at 
> java.base@11.0.17/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
>     at 
> java.base@11.0.17/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
>     at 
> java.base@11.0.17/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
>     at 
> app//org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:325)
>     at 
> app//org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:83){code}
>  Full log attached.



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


[jira] [Updated] (IGNITE-22033) Replace PlacementDriver#currentLease with #getPrimaryReplica in ReadWriteTxContext#waitReadyToFinish

2024-04-12 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-22033:
--
Description: 
#currentLease can return null in a case when there is no lease information on 
the current node yet, while the lease may already exist on another node. This 
can lead to 
PrimaryReplicaExpiredException.
Seems that we've already seen such exceptions on TC:
 
{code:java}
Caused by: org.apache.ignite.internal.tx.impl.PrimaryReplicaExpiredException: 
IGN-TX-13 TraceId:2766fa1f-a00e-4c53-b556-7d06fc116229 Primary replica has 
expired, transaction will be rolled back: [groupId = 59_part_11, expected 
enlistment consistency token = 112211838526816298, commit timestamp = null, 
current primary replica = null]
    at 
app//org.apache.ignite.internal.tx.impl.TransactionInflights$ReadWriteTxContext.waitReadyToFinish(TransactionInflights.java:271)
    at 
app//org.apache.ignite.internal.tx.impl.TransactionInflights$ReadWriteTxContext.performFinish(TransactionInflights.java:229)
    at 
app//org.apache.ignite.internal.tx.impl.TxManagerImpl.finish(TxManagerImpl.java:501)
    at 
app//org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finishInternal(ReadWriteTransactionImpl.java:161)
    at 
app//org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finish(ReadWriteTransactionImpl.java:140)
    at 
app//org.apache.ignite.internal.tx.impl.IgniteAbstractTransactionImpl.commitAsync(IgniteAbstractTransactionImpl.java:98)
    at 
app//org.apache.ignite.internal.sql.engine.tx.QueryTransactionWrapperImpl.commitImplicit(QueryTransactionWrapperImpl.java:46)
    at 
app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$closeAsync$3(AsyncSqlCursorImpl.java:132)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235)
    at 
app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.closeAsync(AsyncSqlCursorImpl.java:132)
    at 
app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$requestNextAsync$2(AsyncSqlCursorImpl.java:101)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2266)
    at 
app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.requestNextAsync(AsyncSqlCursorImpl.java:94)
    at 
app//org.apache.ignite.internal.sql.api.IgniteSqlImpl.lambda$executeAsyncInternal$4(IgniteSqlImpl.java:360)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
    at 
app//org.apache.ignite.internal.sql.engine.SqlQueryProcessor$PrefetchCallback.onPrefetchComplete(SqlQueryProcessor.java:1050)
    at 
app//org.apache.ignite.internal.sql.engine.prepare.KeyValueModifyPlan.lambda$execute$3(KeyValueModifyPlan.java:141)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
    at 
app//org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:325)
    at 
app//org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:83){code}
 
 

  was:
#currentLease can return null in a case when there is no lease information on 
the current node yet, while the lease may already exist on another node. This 
can lead to 
PrimaryReplicaExpiredException.
Seems that we've already seen such exceptions on TC:
 
{code:java}
Caused by: org.apache.ignite.internal.tx.impl.PrimaryReplicaExpiredException: 
IGN-TX-13 TraceId:2766fa1f-a00e-4c53-b556-7d06fc116229 Primary replica has 
expired, transaction will be rolled back: [groupId = 59_part_11, expected 
enlistment consistency token = 112211838526816298, commit timestamp = null, 
current primary replica = null]     at 
app//org.apache.ignite.internal.tx.impl.TransactionInflights$ReadWriteTxContext.waitReadyToFinish(TransactionInflights.java:271)
     at 
app//org.apache.ignite.internal.tx.impl.TransactionInflights$ReadWriteTxContext.performFinish(TransactionInflights.java:229)
     at 
app//org.apache.ignite.internal.tx.impl.TxManagerImpl.finish(TxManagerImpl.java:501)
     at 

[jira] [Updated] (IGNITE-22033) Replace PlacementDriver#currentLease with #getPrimaryReplica in ReadWriteTxContext#waitReadyToFinish

2024-04-12 Thread Denis Chudov (Jira)


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

Denis Chudov updated IGNITE-22033:
--
Description: 
#currentLease can return null in a case when there is no lease information on 
the current node yet, while the lease may already exist on another node. This 
can lead to 
PrimaryReplicaExpiredException.
Seems that we've already seen such exceptions on TC:
 
{code:java}
Caused by: org.apache.ignite.internal.tx.impl.PrimaryReplicaExpiredException: 
IGN-TX-13 TraceId:2766fa1f-a00e-4c53-b556-7d06fc116229 Primary replica has 
expired, transaction will be rolled back: [groupId = 59_part_11, expected 
enlistment consistency token = 112211838526816298, commit timestamp = null, 
current primary replica = null]
    at 
app//org.apache.ignite.internal.tx.impl.TransactionInflights$ReadWriteTxContext.waitReadyToFinish(TransactionInflights.java:271)
    at 
app//org.apache.ignite.internal.tx.impl.TransactionInflights$ReadWriteTxContext.performFinish(TransactionInflights.java:229)
    at 
app//org.apache.ignite.internal.tx.impl.TxManagerImpl.finish(TxManagerImpl.java:501)
    at 
app//org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finishInternal(ReadWriteTransactionImpl.java:161)
    at 
app//org.apache.ignite.internal.tx.impl.ReadWriteTransactionImpl.finish(ReadWriteTransactionImpl.java:140)
    at 
app//org.apache.ignite.internal.tx.impl.IgniteAbstractTransactionImpl.commitAsync(IgniteAbstractTransactionImpl.java:98)
    at 
app//org.apache.ignite.internal.sql.engine.tx.QueryTransactionWrapperImpl.commitImplicit(QueryTransactionWrapperImpl.java:46)
    at 
app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$closeAsync$3(AsyncSqlCursorImpl.java:132)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235)
    at 
app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.closeAsync(AsyncSqlCursorImpl.java:132)
    at 
app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$requestNextAsync$2(AsyncSqlCursorImpl.java:101)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2266)
    at 
app//org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.requestNextAsync(AsyncSqlCursorImpl.java:94)
    at 
app//org.apache.ignite.internal.sql.api.IgniteSqlImpl.lambda$executeAsyncInternal$4(IgniteSqlImpl.java:360)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
    at 
app//org.apache.ignite.internal.sql.engine.SqlQueryProcessor$PrefetchCallback.onPrefetchComplete(SqlQueryProcessor.java:1050)
    at 
app//org.apache.ignite.internal.sql.engine.prepare.KeyValueModifyPlan.lambda$execute$3(KeyValueModifyPlan.java:141)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
    at 
java.base@11.0.17/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
    at 
app//org.apache.ignite.internal.sql.engine.exec.ExecutionContext.lambda$execute$0(ExecutionContext.java:325)
    at 
app//org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:83){code}
 Full log attached.

  was:
#currentLease can return null in a case when there is no lease information on 
the current node yet, while the lease may already exist on another node. This 
can lead to 
PrimaryReplicaExpiredException.
Seems that we've already seen such exceptions on TC:
 
{code:java}
Caused by: org.apache.ignite.internal.tx.impl.PrimaryReplicaExpiredException: 
IGN-TX-13 TraceId:2766fa1f-a00e-4c53-b556-7d06fc116229 Primary replica has 
expired, transaction will be rolled back: [groupId = 59_part_11, expected 
enlistment consistency token = 112211838526816298, commit timestamp = null, 
current primary replica = null]
    at 
app//org.apache.ignite.internal.tx.impl.TransactionInflights$ReadWriteTxContext.waitReadyToFinish(TransactionInflights.java:271)
    at 
app//org.apache.ignite.internal.tx.impl.TransactionInflights$ReadWriteTxContext.performFinish(TransactionInflights.java:229)
    at 
app//org.apache.ignite.internal.tx.impl.TxManagerImpl.finish(TxManagerImpl.java:501)
    at