planetarium / libplanet

Blockchain in C#/.NET for on-chain, decentralized gaming
https://docs.libplanet.io/
GNU Lesser General Public License v2.1
506 stars 142 forks source link

SwarmTest.HandleDifferentAppProtocolVersion fails off and on due to ObjectDisposedException #286

Closed dahlia closed 5 years ago

dahlia commented 5 years ago

https://dev.azure.com/planetarium/libplanet/_build/results?buildId=652&view=logs

This seems to happen only on macOS_Unity jobs:

FAIL Libplanet.Tests.Net.SwarmTest.HandleDifferentAppProtocolVersion: 33.8560338s
  System.ObjectDisposedException: Cannot access a disposed object.
  Object name: 'System.Net.Sockets.Socket'.
    at System.Net.Sockets.Socket.ThrowIfDisposedAndClosed () [0x0001b] in <9eab73f5583e4ab3921ff80e74ccdb29>:0 
    at System.Net.Sockets.Socket.Send (System.Byte[] buffer, System.Int32 offset, System.Int32 size, System.Net.Sockets.SocketFlags socketFlags, System.Net.Sockets.SocketError& errorCode) [0x00000] in <9eab73f5583e4ab3921ff80e74ccdb29>:0 
    at System.Net.Sockets.Socket.Send (System.Byte[] buffer, System.Int32 offset, System.Int32 size, System.Net.Sockets.SocketFlags socketFlags) [0x00000] in <9eab73f5583e4ab3921ff80e74ccdb29>:0 
    at System.Net.Sockets.Socket.Send (System.Byte[] buffer) [0x00000] in <9eab73f5583e4ab3921ff80e74ccdb29>:0 
    at NetMQ.Core.Utils.Signaler.Send () [0x00000] in <21696b85a92a4a0eb8332ff57aebfd69>:0 
    at NetMQ.Core.Mailbox.Send (NetMQ.Core.Command cmd) [0x0003a] in <21696b85a92a4a0eb8332ff57aebfd69>:0 
    at NetMQ.Core.Ctx.SendCommand (System.Int32 threadId, NetMQ.Core.Command command) [0x00000] in <21696b85a92a4a0eb8332ff57aebfd69>:0 
    at NetMQ.Core.ZObject.SendCommand (NetMQ.Core.Command cmd) [0x00012] in <21696b85a92a4a0eb8332ff57aebfd69>:0 
    at NetMQ.Core.ZObject.SendReap (NetMQ.Core.SocketBase socket) [0x00014] in <21696b85a92a4a0eb8332ff57aebfd69>:0 
    at NetMQ.Core.SocketBase.Close () [0x00007] in <21696b85a92a4a0eb8332ff57aebfd69>:0 
    at NetMQ.NetMQSocket.Close () [0x0001b] in <21696b85a92a4a0eb8332ff57aebfd69>:0 
    at NetMQ.NetMQSocket.Dispose (System.Boolean disposing) [0x00004] in <21696b85a92a4a0eb8332ff57aebfd69>:0 
    at NetMQ.NetMQSocket.Dispose () [0x00000] in <21696b85a92a4a0eb8332ff57aebfd69>:0 
    at NetMQ.NetMQQueue`1[T].Dispose () [0x0000b] in <21696b85a92a4a0eb8332ff57aebfd69>:0 
    at Libplanet.Net.Swarm+<StopAsync>d__76.MoveNext () [0x001a9] in <ae53b47b35224c60807255042667e5c4>:0 
  --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at Libplanet.Tests.Net.SwarmTest+<HandleDifferentAppProtocolVersion>d__15.MoveNext () [0x002ed] in <e913920df653409698df18a87884091e>:0 
  --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at Xunit.Sdk.TestInvoker`1+<>c__DisplayClass48_1+<<InvokeTestMethodAsync>b__1>d[TTestCase].MoveNext () [0x00166] in <0350163fda644960871a084e928b71dc>:0 
  --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at Xunit.Sdk.ExecutionTimer+<AggregateAsync>d__4.MoveNext () [0x00076] in <0350163fda644960871a084e928b71dc>:0 
  --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <a6266edc72ee4a578659208aefcdd5e1>:0 
    at Xunit.Sdk.ExceptionAggregator+<RunAsync>d__9.MoveNext () [0x0006a] in <2a925edfe5584632978e98fd8509cdf4>:0 
longfin commented 5 years ago

Another case

longfin commented 5 years ago

It seems to be related double invocation in xunit-unity-runner.

so I've fixed xunit-unity-runner and bumped.