Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-19954

.NET: Thin 3.0: TestAutoFlushFrequency is flaky

    XMLWordPrintableJSON

Details

    Description

      TestAutoFlushFrequency fails due to a known issue with false tx conflicts (IGNITE-19824). We should either add a try-catch, or use a read-only tx to read the data while it is being written.

      https://ci.ignite.apache.org/test/4035794459336688174?currentProjectId=ApacheIgnite3xGradle_Test&expandTestHistoryChartSection=true

      Apache.Ignite.Tx.TransactionException : Failed to acquire a lock due to a conflict [txId=018937f6-e9e1-0000-0000-000003b84e72, conflictingWaiter=WaiterImpl [txId=018937f6-e9ab-0000-0000-000003b84e72, intendedLockMode=null, lockMode=X, ex=null, isDone=true]]
          ----> Apache.Ignite.IgniteException : org.apache.ignite.tx.TransactionException: IGN-TX-4 TraceId:9c789d86-f595-4389-8988-448ea0247644 Failed to acquire a lock due to a conflict [txId=018937f6-e9e1-0000-0000-000003b84e72, conflictingWaiter=WaiterImpl [txId=018937f6-e9ab-0000-0000-000003b84e72, intendedLockMode=null, lockMode=X, ex=null, isDone=true]]
          at org.apache.ignite.internal.util.ExceptionUtils.lambda$withCause$0(ExceptionUtils.java:349)
          at org.apache.ignite.internal.util.ExceptionUtils.withCauseInternal(ExceptionUtils.java:435)
          at org.apache.ignite.internal.util.ExceptionUtils.withCause(ExceptionUtils.java:349)
          at org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.wrapReplicationException(InternalTableImpl.java:1557)
          at org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.lambda$postEnlist$9(InternalTableImpl.java:498)
          at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
          at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
          at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
          at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
          at org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.lambda$enlistWithRetry$5(InternalTableImpl.java:477)
          at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
          at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
          at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
          at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
          at org.apache.ignite.internal.replicator.ReplicaService.lambda$sendToReplica$3(ReplicaService.java:174)
          at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
          at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
          at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:479)
          at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
          at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
          at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
          at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
          at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
        Caused by: org.apache.ignite.internal.tx.LockException: IGN-TX-4 TraceId:9c789d86-f595-4389-8988-448ea0247644 Failed to acquire a lock due to a conflict [txId=018937f6-e9e1-0000-0000-000003b84e72, conflictingWaiter=WaiterImpl [txId=018937f6-e9ab-0000-0000-000003b84e72, intendedLockMode=null, lockMode=X, ex=null, isDone=true]]
          at org.apache.ignite.internal.tx.impl.HeapLockManager$LockState.lockException(HeapLockManager.java:303)
          at org.apache.ignite.internal.tx.impl.HeapLockManager$LockState.isWaiterReadyToNotify(HeapLockManager.java:281)
          at org.apache.ignite.internal.tx.impl.HeapLockManager$LockState.tryAcquire(HeapLockManager.java:230)
          at org.apache.ignite.internal.tx.impl.HeapLockManager.acquire(HeapLockManager.java:95)
          at org.apache.ignite.internal.table.distributed.HashIndexLocker.locksForLookup(HashIndexLocker.java:67)
          at org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.resolveRowByPk(PartitionReplicaListener.java:1280)
          at org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.processSingleEntryAction(PartitionReplicaListener.java:1777)
          at org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.lambda$processRequest$1(PartitionReplicaListener.java:329)
          at org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.appendTxCommand(PartitionReplicaListener.java:1353)
          at org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.processRequest(PartitionReplicaListener.java:329)
          at org.apache.ignite.internal.table.distributed.replicator.PartitionReplicaListener.lambda$invoke$0(PartitionReplicaListener.java:322)
          at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
          at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
          at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
          at org.apache.ignite.internal.raft.RaftGroupServiceImpl.lambda$sendWithRetry$39(RaftGroupServiceImpl.java:541)
          at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
          at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
          at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
          at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
          at org.apache.ignite.network.DefaultMessagingService.onInvokeResponse(DefaultMessagingService.java:384)
          at org.apache.ignite.network.DefaultMessagingService.send0(DefaultMessagingService.java:198)
          at org.apache.ignite.network.DefaultMessagingService.respond(DefaultMessagingService.java:141)
          at org.apache.ignite.network.MessagingService.respond(MessagingService.java:89)
          at org.apache.ignite.raft.jraft.rpc.impl.IgniteRpcServer$NetworkRpcContext.sendResponse(IgniteRpcServer.java:233)
          at org.apache.ignite.raft.jraft.rpc.RpcRequestProcessor.handleRequest(RpcRequestProcessor.java:52)
          at org.apache.ignite.raft.jraft.rpc.RpcRequestProcessor.handleRequest(RpcRequestProcessor.java:29)
          at org.apache.ignite.raft.jraft.rpc.impl.IgniteRpcServer$RpcMessageHandler.lambda$onReceived$0(IgniteRpcServer.java:192)
          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)
           at Apache.Ignite.Internal.ClientFailoverSocket.DoOutInOpAndGetSocketAsync(ClientOp clientOp, Transaction tx, PooledArrayBuffer request, PreferredNode preferredNode, IRetryPolicy retryPolicyOverride) in /opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite/Internal/ClientFailoverSocket.cs:line 187
           at Apache.Ignite.Internal.Table.RecordView`1.DoOutInOpAsync(ClientOp clientOp, Transaction tx, PooledArrayBuffer request, PreferredNode preferredNode, IRetryPolicy retryPolicyOverride) in /opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite/Internal/Table/RecordView.cs:line 441
           at Apache.Ignite.Internal.Table.RecordView`1.DoRecordOutOpAsync(ClientOp op, ITransaction transaction, T record, Boolean keyOnly) in /opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite/Internal/Table/RecordView.cs:line 460
           at Apache.Ignite.Internal.Table.RecordView`1.ContainsKeyAsync(ITransaction transaction, T key) in /opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite/Internal/Table/RecordView.cs:line 113
           at Apache.Ignite.Tests.Table.DataStreamerTests.<TestAutoFlushFrequency>b__6_0() in /opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite.Tests/Table/DataStreamerTests.cs:line 105
           at Apache.Ignite.Tests.TestUtils.WaitForCondition(Func`1 condition, Int32 timeoutMs, Func`1 messageFactory) in /opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite.Tests/TestUtils.cs:line 38
           at Apache.Ignite.Tests.Table.DataStreamerTests.TestAutoFlushFrequency(Boolean enabled) in /opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite.Tests/Table/DataStreamerTests.cs:line 105
           at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
           at NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter awaiter)
           at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
           at NUnit.Framework.Internal.Commands.TestMethodCommand.RunTestMethod(TestExecutionContext context)
           at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
           at NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.<>c__DisplayClass1_0.<Execute>b__0()
           at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
      

      Attachments

        Issue Links

          Activity

            People

              ptupitsyn Pavel Tupitsyn
              ptupitsyn Pavel Tupitsyn
              Igor Sapego Igor Sapego
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m