[
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)