furesoft / Slithin

A management application for the remarkable tablet
GNU General Public License v3.0
152 stars 8 forks source link

[Bug] Update crash when Internet is not available #316

Closed hyau closed 1 year ago

hyau commented 1 year ago

Describe the bug When trying to connect to a Remarkable with an Internet connection, Slithin crashes in the updater.

This is with 1.0.20.0 release on github running on Linux x86_64.

To Reproduce Steps to reproduce the behavior:

  1. Start Slithin from a system with network connectivity but no Internet connectivity. (i.e. the Linux system is connected to a private network with no Internet access).
  2. Enter IP address and credentials for the Remarkable tablet
  3. Clock connect.
  4. See error: (note, this case, the hostname api.github.com is made available but there is no network connectivity). Unhandled exception. System.Net.Http.HttpRequestException: Connection refused (api.github.com:443) ---> System.Net.Sockets.SocketException (111): Connection refused at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken) at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token) at System.Net.Sockets.Socket.gWaitForConnectWithCancellation|277_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request) at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at Octokit.Internal.HttpClientAdapter.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) in /home/runner/work/octokit.net/octokit.net/Octokit/Http/HttpClientAdapter.cs:line 220 at Octokit.Internal.HttpClientAdapter.Send(IRequest request, CancellationToken cancellationToken) in /home/runner/work/octokit.net/octokit.net/Octokit/Http/HttpClientAdapter.cs:line 74 at Octokit.Connection.RunRequest(IRequest request, CancellationToken cancellationToken) in /home/runner/work/octokit.net/octokit.net/Octokit/Http/Connection.cs:line 675 at Octokit.Connection.Run[T](IRequest request, CancellationToken cancellationToken) in /home/runner/work/octokit.net/octokit.net/Octokit/Http/Connection.cs:line 666 at Octokit.ApiConnection.GetPage[TU](Uri uri, IDictionary2 parameters, String accepts, ApiOptions options) in /home/runner/work/octokit.net/octokit.net/Octokit/Http/ApiConnection.cs:line 628 at Octokit.ApiConnection.<>cDisplayClass18_01.<<GetAll>b__0>d.MoveNext() in /home/runner/work/octokit.net/octokit.net/Octokit/Http/ApiConnection.cs:line 212 --- End of stack trace from previous location --- at Octokit.ApiPagination.GetAllPages[T](Func1 getFirstPage, Uri uri) at Slithin.Core.Updates.Updater.StartUpdate() in /home/runner/work/Slithin/Slithin/Source/Slithin/Core/Updates/Updater.cs:line 55 at System.Threading.Tasks.Task.<>c.b__128_1(Object state) at System.Threading.QueueUserWorkItemCallback.<>c.<.cctor>b__6_0(QueueUserWorkItemCallback quwi) at System.Threading.ExecutionContext.RunForThreadPoolUnsafe[TState](ExecutionContext executionContext, Action`1 callback, TState& state) at System.Threading.QueueUserWorkItemCallback.Execute() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() at System.Threading.Thread.StartCallback() Aborted (core dumped)

Expected behavior A clear and concise description of what you expected to happen. Software should startup regardless of the updater or provide a commandline way of completely disabling the update check.

Desktop (please complete the following information): Linux Mint 21

Additional context Add any other context about the problem here. May add the logfile Reproduced with both the x86 deb and the linux-x64.zip binaries from github.

furesoft commented 1 year ago

Fixed