[ 
https://issues.apache.org/jira/browse/IGNITE-23465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn updated IGNITE-23465:
------------------------------------
    Description: 
The log shows that handhsake succeeds on two different cluster IDs - might be a 
race condition.

{code}
Condition not reached after 00:00:05.0085011 (Entry { Message = Ignite.NET 
client version 3.1.0.0-snapshot+6f4bc94b7e is starting, Level = Information, 
Category = Apache.Ignite.Internal.ClientFailoverSocket, Exception =  }, Entry { 
Message = Connection established [remoteAddress=[::ffff:127.0.0.1]:58706], 
Level = Debug, Category = Apache.Ignite.Internal.ClientSocket-263, Exception =  
}, Entry { Message = Handshake succeeded 
[remoteAddress=[::ffff:127.0.0.1]:58706, context=ConnectionContext { Version = 
ClientProtocolVersion { Version = 3.0.0 }, IdleTimeout = 00:00:00, ClusterNode 
= ClusterNode { Id = 3f799f7e-2fec-4b36-b324-968c82dae9c0, Name = s2, Address = 
127.0.0.1:58706 }, ClusterIds = System.Guid[], ClusterName = fake-cluster, 
SslInfo = , ClusterId = 00000002-0000-0000-0000-000000000000 }], Level = Debug, 
Category = Apache.Ignite.Internal.ClientSocket-263, Exception =  }, Entry { 
Message = Server-side IdleTimeout is not set, using configured 
IgniteClientConfiguration.HeartbeatInterval: 00:00:30, Level = Information, 
Category = Apache.Ignite.Internal.ClientSocket-263, Exception =  }, Entry { 
Message = Connection established [remoteAddress=[::ffff:127.0.0.1]:58705], 
Level = Debug, Category = Apache.Ignite.Internal.ClientSocket-264, Exception =  
}, Entry { Message = Handshake succeeded 
[remoteAddress=[::ffff:127.0.0.1]:58705, context=ConnectionContext { Version = 
ClientProtocolVersion { Version = 3.0.0 }, IdleTimeout = 00:00:00, ClusterNode 
= ClusterNode { Id = 4081e834-0b91-49b1-8f09-a83e93a079ee, Name = s1, Address = 
127.0.0.1:58705 }, ClusterIds = System.Guid[], ClusterName = fake-cluster, 
SslInfo = , ClusterId = 00000001-0000-0000-0000-000000000000 }], Level = Debug, 
Category = Apache.Ignite.Internal.ClientSocket-264, Exception =  }, Entry { 
Message = Server-side IdleTimeout is not set, using configured 
IgniteClientConfiguration.HeartbeatInterval: 00:00:30, Level = Information, 
Category = Apache.Ignite.Internal.ClientSocket-264, Exception =  }, Entry { 
Message = Connection closed gracefully [remoteAddress=127.0.0.1:58705], Level = 
Debug, Category = Apache.Ignite.Internal.ClientSocket-264, Exception =  }, 
Entry { Message = Exception while reading from socket, connection closed: The 
operation was canceled., Level = Error, Category = 
Apache.Ignite.Internal.ClientSocket-264, Exception = 
System.OperationCanceledException: The operation was canceled.
   at System.Threading.CancellationToken.ThrowOperationCanceledException()
   at 
System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError
 error, CancellationToken cancellationToken)
   at 
System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16
 token)
   at Apache.Ignite.Internal.ClientSocket.ReceiveBytesAsync(Stream stream, 
Byte[] buffer, Int32 size, MetricsContext metricsContext, CancellationToken 
cancellationToken) in 
C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
 506
   at Apache.Ignite.Internal.ClientSocket.ReadMessageSizeAsync(Stream stream, 
Byte[] buffer, MetricsContext metricsContext, CancellationToken 
cancellationToken) in 
C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
 490
   at Apache.Ignite.Internal.ClientSocket.ReadResponseAsync(Stream stream, 
Byte[] messageSizeBytes, MetricsContext metricsContext, CancellationToken 
cancellationToken) in 
C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
 463
   at Apache.Ignite.Internal.ClientSocket.RunReceiveLoop(CancellationToken 
cancellationToken) in 
C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
 767 }, Entry { Message = Trying to establish secondary connections - awaiting 
0 tasks..., Level = Debug, Category = 
Apache.Ignite.Internal.ClientFailoverSocket, Exception =  }, Entry { Message = 
0 secondary connections established, 0 failed., Level = Debug, Category = 
Apache.Ignite.Internal.ClientFailoverSocket, Exception =  })
   at Apache.Ignite.Tests.TestUtils.WaitForConditionAsync(Func`1 condition, 
Int32 timeoutMs, Func`1 messageFactory) in 
C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite.Tests\TestUtils.cs:line
 76
   at Apache.Ignite.Tests.TestUtils.WaitForCondition(Func`1 condition, Int32 
timeoutMs, Func`1 messageFactory) in 
C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite.Tests\TestUtils.cs:line
 45
   at 
Apache.Ignite.Tests.MultiClusterTest.TestClientDropsConnectionOnClusterIdMismatch()
 in 
C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite.Tests\MultiClusterTest.cs:line
 50
   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)
1)    at Apache.Ignite.Tests.TestUtils.WaitForConditionAsync(Func`1 condition, 
Int32 timeoutMs, Func`1 messageFactory) in 
C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite.Tests\TestUtils.cs:line
 76
{code}

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

{code}
Condition not reached after 00:00:01.0084379
   at Apache.Ignite.Tests.TestUtils.WaitForConditionAsync(Func`1 condition, 
Int32 timeoutMs, Func`1 messageFactory) in 
/opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite.Tests/TestUtils.cs:line
 76
   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
 45
   at 
Apache.Ignite.Tests.MultiClusterTest.TestClientDropsConnectionOnClusterIdMismatch()
 in 
/opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite.Tests/MultiClusterTest.cs:line
 49
   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)
1)    at Apache.Ignite.Tests.TestUtils.WaitForConditionAsync(Func`1 condition, 
Int32 timeoutMs, Func`1 messageFactory) in 
/opt/buildagent/work/b8d4df1365f1f1e5/modules/platforms/dotnet/Apache.Ignite.Tests/TestUtils.cs:line
 76
------- Stdout: -------
Fake server started [port=36191, 
test=TestClientDropsConnectionOnClusterIdMismatch]
Fake server started [port=34381, 
test=TestClientDropsConnectionOnClusterIdMismatch]
{code}


> .NET: 
> Apache.Ignite.Tests.MultiClusterTest.TestClientDropsConnectionOnClusterIdMismatch
>  is flaky
> ------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-23465
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23465
>             Project: Ignite
>          Issue Type: Bug
>          Components: platforms, thin client
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.1
>
>
> The log shows that handhsake succeeds on two different cluster IDs - might be 
> a race condition.
> {code}
> Condition not reached after 00:00:05.0085011 (Entry { Message = Ignite.NET 
> client version 3.1.0.0-snapshot+6f4bc94b7e is starting, Level = Information, 
> Category = Apache.Ignite.Internal.ClientFailoverSocket, Exception =  }, Entry 
> { Message = Connection established [remoteAddress=[::ffff:127.0.0.1]:58706], 
> Level = Debug, Category = Apache.Ignite.Internal.ClientSocket-263, Exception 
> =  }, Entry { Message = Handshake succeeded 
> [remoteAddress=[::ffff:127.0.0.1]:58706, context=ConnectionContext { Version 
> = ClientProtocolVersion { Version = 3.0.0 }, IdleTimeout = 00:00:00, 
> ClusterNode = ClusterNode { Id = 3f799f7e-2fec-4b36-b324-968c82dae9c0, Name = 
> s2, Address = 127.0.0.1:58706 }, ClusterIds = System.Guid[], ClusterName = 
> fake-cluster, SslInfo = , ClusterId = 00000002-0000-0000-0000-000000000000 
> }], Level = Debug, Category = Apache.Ignite.Internal.ClientSocket-263, 
> Exception =  }, Entry { Message = Server-side IdleTimeout is not set, using 
> configured IgniteClientConfiguration.HeartbeatInterval: 00:00:30, Level = 
> Information, Category = Apache.Ignite.Internal.ClientSocket-263, Exception =  
> }, Entry { Message = Connection established 
> [remoteAddress=[::ffff:127.0.0.1]:58705], Level = Debug, Category = 
> Apache.Ignite.Internal.ClientSocket-264, Exception =  }, Entry { Message = 
> Handshake succeeded [remoteAddress=[::ffff:127.0.0.1]:58705, 
> context=ConnectionContext { Version = ClientProtocolVersion { Version = 3.0.0 
> }, IdleTimeout = 00:00:00, ClusterNode = ClusterNode { Id = 
> 4081e834-0b91-49b1-8f09-a83e93a079ee, Name = s1, Address = 127.0.0.1:58705 }, 
> ClusterIds = System.Guid[], ClusterName = fake-cluster, SslInfo = , ClusterId 
> = 00000001-0000-0000-0000-000000000000 }], Level = Debug, Category = 
> Apache.Ignite.Internal.ClientSocket-264, Exception =  }, Entry { Message = 
> Server-side IdleTimeout is not set, using configured 
> IgniteClientConfiguration.HeartbeatInterval: 00:00:30, Level = Information, 
> Category = Apache.Ignite.Internal.ClientSocket-264, Exception =  }, Entry { 
> Message = Connection closed gracefully [remoteAddress=127.0.0.1:58705], Level 
> = Debug, Category = Apache.Ignite.Internal.ClientSocket-264, Exception =  }, 
> Entry { Message = Exception while reading from socket, connection closed: The 
> operation was canceled., Level = Error, Category = 
> Apache.Ignite.Internal.ClientSocket-264, Exception = 
> System.OperationCanceledException: The operation was canceled.
>    at System.Threading.CancellationToken.ThrowOperationCanceledException()
>    at 
> System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError
>  error, CancellationToken cancellationToken)
>    at 
> System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16
>  token)
>    at Apache.Ignite.Internal.ClientSocket.ReceiveBytesAsync(Stream stream, 
> Byte[] buffer, Int32 size, MetricsContext metricsContext, CancellationToken 
> cancellationToken) in 
> C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  506
>    at Apache.Ignite.Internal.ClientSocket.ReadMessageSizeAsync(Stream stream, 
> Byte[] buffer, MetricsContext metricsContext, CancellationToken 
> cancellationToken) in 
> C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  490
>    at Apache.Ignite.Internal.ClientSocket.ReadResponseAsync(Stream stream, 
> Byte[] messageSizeBytes, MetricsContext metricsContext, CancellationToken 
> cancellationToken) in 
> C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  463
>    at Apache.Ignite.Internal.ClientSocket.RunReceiveLoop(CancellationToken 
> cancellationToken) in 
> C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite\Internal\ClientSocket.cs:line
>  767 }, Entry { Message = Trying to establish secondary connections - 
> awaiting 0 tasks..., Level = Debug, Category = 
> Apache.Ignite.Internal.ClientFailoverSocket, Exception =  }, Entry { Message 
> = 0 secondary connections established, 0 failed., Level = Debug, Category = 
> Apache.Ignite.Internal.ClientFailoverSocket, Exception =  })
>    at Apache.Ignite.Tests.TestUtils.WaitForConditionAsync(Func`1 condition, 
> Int32 timeoutMs, Func`1 messageFactory) in 
> C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite.Tests\TestUtils.cs:line
>  76
>    at Apache.Ignite.Tests.TestUtils.WaitForCondition(Func`1 condition, Int32 
> timeoutMs, Func`1 messageFactory) in 
> C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite.Tests\TestUtils.cs:line
>  45
>    at 
> Apache.Ignite.Tests.MultiClusterTest.TestClientDropsConnectionOnClusterIdMismatch()
>  in 
> C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite.Tests\MultiClusterTest.cs:line
>  50
>    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)
> 1)    at Apache.Ignite.Tests.TestUtils.WaitForConditionAsync(Func`1 
> condition, Int32 timeoutMs, Func`1 messageFactory) in 
> C:\opt\BuildAgent\work\b8d4df1365f1f1e5\modules\platforms\dotnet\Apache.Ignite.Tests\TestUtils.cs:line
>  76
> {code}



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

Reply via email to