Closed
Description
I opened up a coredump and executed the clrstack
command.
dotnet dump
seemed to hang.
After waiting for some more time, eventually it threw an exception.
Unhandled Exception: System.Threading.Tasks.TaskCanceledException: The operation was canceled. ---> System.IO.IOException: Unable to read data from the transport connection: Operation canceled. ---> System.Net.Sockets.SocketException: Operation canceled
--- End of inner exception stack trace ---
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token)
at System.Net.Security.SslStreamInternal.<FillBufferAsync>g__InternalFillBufferAsync|38_0[TReadAdapter](TReadAdapter adap, ValueTask`1 task, Int32 min, Int32 initial)
at System.Net.Security.SslStreamInternal.ReadAsyncInternal[TReadAdapter](TReadAdapter adapter, Memory`1 buffer)
at System.Net.Http.HttpConnection.FillAsync()
at System.Net.Http.HttpConnection.CopyToExactLengthAsync(Stream destination, UInt64 length, CancellationToken cancellationToken)
at System.Net.Http.HttpConnection.ContentLengthReadStream.CompleteCopyToAsync(Task copyTask, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.HttpConnection.ContentLengthReadStream.CompleteCopyToAsync(Task copyTask, CancellationToken cancellationToken)
at System.Net.Http.HttpConnection.HttpConnectionResponseContent.SerializeToStreamAsync(Stream stream, TransportContext context, CancellationToken cancellationToken)
at System.Net.Http.HttpContent.LoadIntoBufferAsyncCore(Task serializeToStreamTask, MemoryStream tempBuffer)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at Microsoft.SymbolStore.SymbolStores.HttpSymbolStore.GetFileStream(Uri requestUri, CancellationToken token)
at Microsoft.SymbolStore.SymbolStores.HttpSymbolStore.GetFileInner(SymbolStoreKey key, CancellationToken token)
at Microsoft.SymbolStore.SymbolStores.SymbolStore.GetFile(SymbolStoreKey key, CancellationToken token)
at Microsoft.SymbolStore.SymbolStores.SymbolStore.GetFile(SymbolStoreKey key, CancellationToken token)
at SOS.SymbolReader.GetSymbolStoreFile(SymbolStoreKey key) in /_/src/SOS/SOS.NETCore/SymbolReader.cs:line 1009
at SOS.SymbolReader.GetSymbolFile(SymbolStoreKey key) in /_/src/SOS/SOS.NETCore/SymbolReader.cs:line 327
at SOS.SymbolReader.LoadNativeSymbols(SymbolFileCallback callback, IntPtr parameter, String moduleFilePath, UInt64 address, Int32 size, ReadMemoryDelegate readMemory) in /_/src/SOS/SOS.NETCore/SymbolReader.cs:line 300
at SOS.LLDBServices.LoadNativeSymbols2(IntPtr self, Boolean runtimeOnly, ModuleLoadCallback callback) in /_/src/SOS/SOS.Hosting/LLDBServices.cs:line 180
at SOS.SOSHost.ExecuteCommand(String command, String arguments) in /_/src/SOS/SOS.Hosting/SOSHost.cs:line 318
at Microsoft.Diagnostics.Tools.Dump.SOSCommand.Invoke() in /_/src/Tools/dotnet-dump/Commands/SOSCommand.cs:line 60
It seems I reached a 4 minute timeout.
For my dump, it was downloading a file 70 MB file (http://msdl.microsoft.com/download/symbols/_.debug/elf-buildid-sym-01d29c608f8df7d0234a8ca1a47bf377eb0c9f25/_.debug). So if my connection speed was on average below 300KB/s, the download times out.
Should this limit be increased?
The UX would be nicer if the tool reports it is downloading symbols, and then leaves it to the user to abort by pressing Ctrl+C.
cc @mikem8361