JustArchiNET / ArchiSteamFarm

C# application with primary purpose of farming Steam cards from multiple accounts simultaneously.
Apache License 2.0
11.28k stars 1.05k forks source link

ASF crash on TCP disconnects #576

Closed guihkx closed 6 years ago

guihkx commented 7 years ago

Not sure if this matters or not, but as they're FATAL errors, I decided to report anyway. Here's the log.txt:

https://gist.githubusercontent.com/GUiHKX/77210a3b56126b30c05c15756dff6f73/raw/3126beb68069138643d06461cad853e9df4f22ee/log.txt

JustArchi commented 7 years ago
2017-06-16 15:36:05|mono-sgen-1935|FATAL|ASF|UnobservedTaskExceptionHandler() System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. ---> System.NullReferenceException: Object reference not set to an instance of an object
  at SteamKit2.TcpConnection.TryConnect (System.Object sender) [0x00094] in <f740b1bfddfa4ddb95d88fffe3231fb2>:0 
  at SteamKit2.TcpConnection+<>c__DisplayClass19_0.<Connect>b__0 (System.Threading.Tasks.Task`1[TResult] t) [0x000b2] in <f740b1bfddfa4ddb95d88fffe3231fb2>:0 
  at System.Threading.Tasks.ContinuationTaskFromResultTask`1[TAntecedentResult].InnerInvoke () [0x00024] in <73ee1b14c2fa4d61b481096ff3d8d6d7>:0 
  at System.Threading.Tasks.Task.Execute () [0x00010] in <73ee1b14c2fa4d61b481096ff3d8d6d7>:0 
   --- End of inner exception stack trace ---
---> (Inner Exception #0) System.NullReferenceException: Object reference not set to an instance of an object
  at SteamKit2.TcpConnection.TryConnect (System.Object sender) [0x00094] in <f740b1bfddfa4ddb95d88fffe3231fb2>:0 
  at SteamKit2.TcpConnection+<>c__DisplayClass19_0.<Connect>b__0 (System.Threading.Tasks.Task`1[TResult] t) [0x000b2] in <f740b1bfddfa4ddb95d88fffe3231fb2>:0 
  at System.Threading.Tasks.ContinuationTaskFromResultTask`1[TAntecedentResult].InnerInvoke () [0x00024] in <73ee1b14c2fa4d61b481096ff3d8d6d7>:0 
  at System.Threading.Tasks.Task.Execute () [0x00010] in <73ee1b14c2fa4d61b481096ff3d8d6d7>:0 <---

As well as:

2017-07-21 02:51:53|dotnet-19313|FATAL|ASF|OnUnhandledException() System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'.
   at System.Net.Sockets.Socket.Poll(Int32 microSeconds, SelectMode mode)
   at SteamKit2.TcpConnection.NetLoop()
   at System.Threading.Thread.ThreadMain_ThreadStart()
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
guihkx commented 7 years ago

My internet connection has been really bad lately. I guess I've got two new errors in V3.0.1.4, probably related to this (I'm not sure)

2017-08-15 20:20:18|dotnet-31362|FATAL|ASF|OnUnobservedTaskException() System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The remote party closed the WebSocket connection without completing the close handshake.) ---> System.Net.WebSockets.WebSocketException: The remote party closed the WebSocket connection without completing the close handshake. ---> System.IO.IOException: Unable to transfer data on the transport connection: Broken pipe. ---> System.Net.Sockets.SocketException: Broken pipe
   --- End of inner exception stack trace ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Security.SslStreamInternal.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslStreamInternal.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, LazyAsyncResult asyncResult)
   at System.Net.Security.SslStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback asyncCallback, Object asyncState)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef, TArgs args, Func`5 beginMethod, Func`3 endMethod)
   at System.IO.Stream.BeginEndWriteAsync(Byte[] buffer, Int32 offset, Int32 count)
   at System.IO.Stream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at System.Net.WebSockets.ManagedWebSocket.SendFrameLockAcquiredNonCancelableAsync(MessageOpcode opcode, Boolean endOfMessage, ArraySegment`1 payloadBuffer)
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
---> (Inner Exception #0) System.Net.WebSockets.WebSocketException (0x80004005): The remote party closed the WebSocket connection without completing the close handshake. ---> System.IO.IOException: Unable to transfer data on the transport connection: Broken pipe. ---> System.Net.Sockets.SocketException: Broken pipe
   --- End of inner exception stack trace ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Security.SslStreamInternal.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslStreamInternal.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, LazyAsyncResult asyncResult)
   at System.Net.Security.SslStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback asyncCallback, Object asyncState)
   at System.Threading.Tasks.TaskFactory`1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef, TArgs args, Func`5 beginMethod, Func`3 endMethod)
   at System.IO.Stream.BeginEndWriteAsync(Byte[] buffer, Int32 offset, Int32 count)
   at System.IO.Stream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at System.Net.WebSockets.ManagedWebSocket.SendFrameLockAcquiredNonCancelableAsync(MessageOpcode opcode, Boolean endOfMessage, ArraySegment`1 payloadBuffer)<---

And:

2017-08-15 20:19:48|dotnet-31362|WARN|tuca|Init() System.IO.InvalidDataException: An internal error occurred when attempting to parse the response from the WebAPI server. This can indicate a change in the VDF format. ---> System.Exception: LoadFromBuffer: missing {
   at SteamKit2.KVTextReader..ctor(KeyValue kv, Stream input)
   at SteamKit2.KeyValue.ReadAsText(Stream input)
   at SteamKit2.WebAPI.AsyncInterface.<CallAsyncCore>d__6.MoveNext()
   --- End of inner exception stack trace ---
   at SteamKit2.WebAPI.AsyncInterface.<CallAsyncCore>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at SteamKit2.WebAPI.Interface.TryInvokeMember(InvokeMemberBinder binder, Object[] args, Object& result)
   at CallSite.Target(Closure , CallSite , Object , UInt64 , String , String , String , Boolean )
   at ArchiSteamFarm.ArchiWebHandler.<>c__DisplayClass48_0.<Init>b__0() 

Here's the full log.txt:

https://gist.github.com/GUiHKX/baffe602ef531862b553a94c96be7a91/raw/12336f9bb7efafbe42ff618215d21758211ae8ef/log.txt

JustArchi commented 7 years ago

You didn't report anything new - first one is websocket hiccup https://github.com/JustArchi/ArchiSteamFarm/issues/612 and second one is not even an error. Reporting what ASF marks as a warning is generally pointless.

Last NRE is in fact this issue.

JustArchi commented 6 years ago

This issue should be completely solved in V3.0.5.0+.