Mikhail Efremov created IGNITE-27623:
----------------------------------------

             Summary: Negative effective timeout in 
TransactionExpirationRegistry#physicalExpirationTimeMillis
                 Key: IGNITE-27623
                 URL: https://issues.apache.org/jira/browse/IGNITE-27623
             Project: Ignite
          Issue Type: Bug
            Reporter: Mikhail Efremov


*Description*
Some why with assertions enabled we may observe negative {{b}} value inside of 
{{TransactionExpirationRegistry#sumWithSaturation}} with explicit transactions 
with {{Integer.MAX_VALUE}} timeout. Stacktrace of such failure:


{code:java}
Caused by: java.lang.AssertionError: -9223372036854775802
        at 
org.apache.ignite.internal.tx.impl.TransactionExpirationRegistry.sumWithSaturation(TransactionExpirationRegistry.java:46)
        at 
org.apache.ignite.internal.tx.impl.TransactionExpirationRegistry.physicalExpirationTimeMillis(TransactionExpirationRegistry.java:41)
        at 
org.apache.ignite.internal.tx.impl.TransactionExpirationRegistry.register(TransactionExpirationRegistry.java:59)
        at 
org.apache.ignite.internal.tx.impl.TxManagerImpl.beginRemote(TxManagerImpl.java:1121)
        at 
org.apache.ignite.client.handler.requests.table.ClientTableCommon.lambda$readTx$4(ClientTableCommon.java:522)
        at 
java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:684)
        at 
java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662)
        at 
java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2168)
        at 
org.apache.ignite.client.handler.requests.table.ClientTableCommon.readTx(ClientTableCommon.java:521)
        at 
org.apache.ignite.client.handler.requests.table.ClientTableCommon.readOrStartImplicitTx(ClientTableCommon.java:567)
        at 
org.apache.ignite.client.handler.requests.table.ClientTupleRequestBase.readAsync(ClientTupleRequestBase.java:94)
        at 
org.apache.ignite.client.handler.requests.table.ClientTupleGetRequest.process(ClientTupleGetRequest.java:51)
        at 
org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperation(ClientInboundMessageHandler.java:877)
        at 
org.apache.ignite.client.handler.ClientInboundMessageHandler.processOperationInternal(ClientInboundMessageHandler.java:1158)
        ... 7 more
{code}

*Motivation*

There shouldn't be negative value by definition.

*Definition of done*

# Scenario is explained.
# Root cause is fixed.
# Related new unit tests are provided.



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

Reply via email to