[ 
https://issues.apache.org/jira/browse/IGNITE-26393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18020915#comment-18020915
 ] 

Pavel Tupitsyn commented on IGNITE-26393:
-----------------------------------------

The race condition is in GetCachedSchemaAsync - we retry if the task is faulted 
(fails quick enough).

> .NET: 
> Apache.Ignite.Tests.Table.SchemaUpdateTest.TestFailedSchemaLoadTaskIsRetried 
> is flaky
> -------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-26393
>                 URL: https://issues.apache.org/jira/browse/IGNITE-26393
>             Project: Ignite
>          Issue Type: Bug
>          Components: thin clients ai3
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>              Labels: MakeTeamcityGreenAgain, ignite-3
>             Fix For: 3.1
>
>
> https://ci.ignite.apache.org/buildConfiguration/ApacheIgnite3xGradle_Test_RunAllTests/9454100
> {code}
> Expected: True
>   But was:  False
>    at 
> Apache.Ignite.Tests.Table.SchemaUpdateTest.TestFailedSchemaLoadTaskIsRetried()
>  in 
> C:\w\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite.Tests\Table\SchemaUpdateTest.cs:line
>  98
>    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.TimeoutCommand.<>c__DisplayClass5_0.<RunTestOnSeparateThread>b__0()
> 1)    at 
> Apache.Ignite.Tests.Table.SchemaUpdateTest.TestFailedSchemaLoadTaskIsRetried()
>  in 
> C:\w\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite.Tests\Table\SchemaUpdateTest.cs:line
>  98
>    at 
> System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AsyncStateMachineBox`1.ExecutionContextCallback(Object
>  s)
> ------- Stdout: -------
> Fake server started [port=60853, test=TestFailedSchemaLoadTaskIsRetried]
> [09:25:48] [info] [Apache.Ignite.Internal.ClientFailoverSocket] Ignite.NET 
> client version 3.1.0.0-snapshot+312f07ac2e is starting
> [09:25:48] [dbug] [Apache.Ignite.Internal.ClientSocket-4334] Connection 
> established [remoteAddress=[::ffff:127.0.0.1]:60853]
> [09:25:48] [dbug] [Apache.Ignite.Internal.ClientSocket-4334] Handshake 
> succeeded [remoteAddress=[::ffff:127.0.0.1]:60853, context=ConnectionContext 
> { Version = ClientProtocolVersion { Version = 3.0.0 }, IdleTimeout = 
> 00:00:00, ClusterNode = ClusterNode { Id = 
> f13cd3fc-6bfb-43c5-8a4c-5cfff984e9a4, Name = fake-server, Address = 
> 127.0.0.1:60853 }, ClusterIds = System.Guid[], ClusterName = fake-cluster, 
> SslInfo = , Features = 0, ClusterId = 00000000-0000-0000-0000-000000000000 }]
> [09:25:48] [info] [Apache.Ignite.Internal.ClientSocket-4334] Server-side 
> IdleTimeout is not set, using configured 
> IgniteClientConfiguration.HeartbeatInterval: 1.00:00:00
> [09:25:48] [trce] [Apache.Ignite.Internal.ClientSocket-4334] Sending request 
> [requestId=1, op=TableGet, remoteAddress=127.0.0.1:60853]
> [09:25:48] [trce] [Apache.Ignite.Internal.ClientSocket-4334] Received 
> response [requestId=1, flags=PartitionAssignmentChanged, 
> remoteAddress=127.0.0.1:60853]
> [09:25:48] [info] [Apache.Ignite.Internal.ClientSocket-4334] Partition 
> assignment change notification received [remoteAddress=127.0.0.1:60853, 
> timestamp=0
> [09:25:48] [trce] [Apache.Ignite.Internal.ClientSocket-4334] Sending request 
> [requestId=2, op=SchemasGet, remoteAddress=127.0.0.1:60853]
> [09:25:48] [fail] [Apache.Ignite.Internal.ClientSocket-4334] Exception while 
> reading from socket, connection closed: Connection lost (failed to read data 
> from socket) (exception: Apache.Ignite.IgniteClientConnectionException: 
> Connection lost (failed to read data from socket)
>  ---> System.Net.Sockets.SocketException (10053): An established connection 
> was aborted by the software in your host machine.
>    --- End of inner exception stack trace ---
>    at Apache.Ignite.Internal.ClientSocket.ReceiveBytesAsync(Stream stream, 
> Byte[] buffer, Int32 size, MetricsContext metricsContext, CancellationToken 
> cancellationToken) in 
> C:\w\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  535
>    at Apache.Ignite.Internal.ClientSocket.ReadMessageSizeAsync(Stream stream, 
> Byte[] buffer, MetricsContext metricsContext, CancellationToken 
> cancellationToken) in 
> C:\w\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  514
>    at Apache.Ignite.Internal.ClientSocket.ReadResponseAsync(Stream stream, 
> Byte[] messageSizeBytes, MetricsContext metricsContext, CancellationToken 
> cancellationToken) in 
> C:\w\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  487
>    at Apache.Ignite.Internal.ClientSocket.RunReceiveLoop(CancellationToken 
> cancellationToken) in 
> C:\w\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  838)
> [09:25:48] [warn] [Apache.Ignite.Internal.ClientSocket-4334] Connection 
> closed with error [remoteAddress=127.0.0.1:60853]: Exception while reading 
> from socket, connection closed: Connection lost (failed to read data from 
> socket) (exception: Apache.Ignite.IgniteClientConnectionException: Exception 
> while reading from socket, connection closed: Connection lost (failed to read 
> data from socket)
>  ---> Apache.Ignite.IgniteClientConnectionException: Connection lost (failed 
> to read data from socket)
>  ---> System.Net.Sockets.SocketException (10053): An established connection 
> was aborted by the software in your host machine.
>    --- End of inner exception stack trace ---
>    at Apache.Ignite.Internal.ClientSocket.ReceiveBytesAsync(Stream stream, 
> Byte[] buffer, Int32 size, MetricsContext metricsContext, CancellationToken 
> cancellationToken) in 
> C:\w\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  535
>    at Apache.Ignite.Internal.ClientSocket.ReadMessageSizeAsync(Stream stream, 
> Byte[] buffer, MetricsContext metricsContext, CancellationToken 
> cancellationToken) in 
> C:\w\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  514
>    at Apache.Ignite.Internal.ClientSocket.ReadResponseAsync(Stream stream, 
> Byte[] messageSizeBytes, MetricsContext metricsContext, CancellationToken 
> cancellationToken) in 
> C:\w\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  487
>    at Apache.Ignite.Internal.ClientSocket.RunReceiveLoop(CancellationToken 
> cancellationToken) in 
> C:\w\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  838
>    --- End of inner exception stack trace ---)
> [09:25:48] [dbug] [Apache.Ignite.Internal.ClientFailoverSocket] Not retrying 
> operation [opCode=5, opType=SchemasGet, attempt=0, lastError=Exception while 
> reading from socket, connection closed: Connection lost (failed to read data 
> from socket)]
> [09:25:48] [dbug] [Apache.Ignite.Internal.ClientSocket-4335] Connection 
> established [remoteAddress=[::ffff:127.0.0.1]:60853]
> [09:25:48] [dbug] [Apache.Ignite.Internal.ClientSocket-4335] Handshake 
> succeeded [remoteAddress=[::ffff:127.0.0.1]:60853, context=ConnectionContext 
> { Version = ClientProtocolVersion { Version = 3.0.0 }, IdleTimeout = 
> 00:00:00, ClusterNode = ClusterNode { Id = 
> f13cd3fc-6bfb-43c5-8a4c-5cfff984e9a4, Name = fake-server, Address = 
> 127.0.0.1:60853 }, ClusterIds = System.Guid[], ClusterName = fake-cluster, 
> SslInfo = , Features = 196, ClusterId = 00000000-0000-0000-0000-000000000000 
> }]
> [09:25:48] [info] [Apache.Ignite.Internal.ClientSocket-4335] Server-side 
> IdleTimeout is not set, using configured 
> IgniteClientConfiguration.HeartbeatInterval: 1.00:00:00
> [09:25:48] [trce] [Apache.Ignite.Internal.ClientSocket-4335] Sending request 
> [requestId=1, op=SchemasGet, remoteAddress=127.0.0.1:60853]
> [09:25:48] [trce] [Apache.Ignite.Internal.ClientSocket-4335] Received 
> response [requestId=1, flags=PartitionAssignmentChanged, 
> remoteAddress=127.0.0.1:60853]
> [09:25:48] [info] [Apache.Ignite.Internal.ClientSocket-4335] Partition 
> assignment change notification received [remoteAddress=127.0.0.1:60853, 
> timestamp=0
> [09:25:48] [dbug] [Apache.Ignite.Internal.Table.Table] Schema loaded 
> [tableId=1001, schemaVersion=1]
> [09:25:48] [trce] [Apache.Ignite.Internal.ClientSocket-4335] Sending request 
> [requestId=2, op=PartitionAssignmentGet, remoteAddress=127.0.0.1:60853]
> [09:25:48] [trce] [Apache.Ignite.Internal.ClientSocket-4335] Received 
> response [requestId=2, flags=PartitionAssignmentChanged, 
> remoteAddress=127.0.0.1:60853]
> [09:25:48] [info] [Apache.Ignite.Internal.ClientSocket-4335] Partition 
> assignment change notification received [remoteAddress=127.0.0.1:60853, 
> timestamp=0
> [09:25:48] [trce] [Apache.Ignite.Internal.ClientSocket-4335] Sending request 
> [requestId=3, op=TupleUpsert, remoteAddress=127.0.0.1:60853]
> [09:25:48] [trce] [Apache.Ignite.Internal.ClientSocket-4335] Received 
> response [requestId=3, flags=PartitionAssignmentChanged, 
> remoteAddress=127.0.0.1:60853]
> [09:25:48] [info] [Apache.Ignite.Internal.ClientSocket-4335] Partition 
> assignment change notification received [remoteAddress=127.0.0.1:60853, 
> timestamp=0
> Upsert success.
> [09:25:48] [dbug] [Apache.Ignite.Internal.ClientSocket-4335] Connection 
> closed gracefully [remoteAddress=127.0.0.1:60853]
> {code}



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

Reply via email to