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)