benaclejames / VRCFaceTracking

OSC App to allow VRChat avatars to interact with eye and facial tracking hardware
https://docs.vrcft.io
Apache License 2.0
594 stars 94 forks source link

Failure to reach AWS address crashes application #219

Closed Xipherisroot closed 1 month ago

Xipherisroot commented 1 month ago

Using VRCFT Version 5.2.3.0 on Windows 10, if this address

rjlk4u22t36tvqz3bvbkwv675a0wbous.lambda-url.us-east-1.on.aws:443

resolves to "::" or otherwise fails to resolve, the application crashes, this happens on a fresh install with no modules, etc.

The 'latest.log' shows the following output:

[VRCFaceTracking.Services.ActivationService] Information: VRCFT Version 5.2.3.0 initializing... [VRCFaceTracking.Services.ActivationService] Information: Initializing OSC... [VRCFaceTracking.Core.OSC.OscQueryService] Debug: OSC Service Initializing [VRCFaceTracking.Core.OSC.OscQueryService] Debug: OSC Service Initialized with result (False, False) [VRCFaceTracking.Services.ActivationService] Information: Initializing main service... [VRCFaceTracking.Core.Params.Data.UnifiedTrackingMutator] Debug: Reading configuration... [VRCFaceTracking.Core.MainStandalone] Debug: Starting OSC update loop... [VRCFaceTracking.Core.Params.Data.UnifiedTrackingMutator] Debug: Configuration loaded. [VRCFaceTracking.Services.ActivationService] Debug: Checking for deletion requests for installed modules... [VRCFaceTracking.Services.ActivationService] Information: Checking for updates for installed modules... [App] Error: Unhandled exception [App] Critical: Stacktrace: 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(QueueItem queueItem) at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.HttpConnectionWaiter1.WaitForConnectionAsync(Boolean async, CancellationToken requestCancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken) at System.Net.Http.HttpClient.gCore|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at VRCFaceTracking.Core.Services.ModuleDataService.AllModules() at VRCFaceTracking.Core.Services.ModuleDataService.GetRemoteModules() at VRCFaceTracking.Services.ActivationService.StartupAsync() at VRCFaceTracking.Services.ActivationService.ActivateAsync(Object activationArgs) at VRCFaceTracking.App.OnLaunched(LaunchActivatedEventArgs args) at System.Threading.Tasks.Task.<>c.b__128_0(Object state) at Microsoft.UI.Dispatching.DispatcherQueueSynchronizationContext.<>cDisplayClass2_0.b0() [App] Critical: Inner exception: System.Net.Sockets.SocketException (11004): The requested name is valid, but no data of the requested type was found. 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|281_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) [App] Critical: Message: The requested name is valid, but no data of the requested type was found. (rjlk4u22t36tvqz3bvbkwv675a0wbous.lambda-url.us-east-1.on.aws:443)

Obviously if the application cannot reach what looks like an auto-update endpoint, it shouldn't completely crash, this seems to be undesirable and unintended behavior.

I found this due to the address matching a filter in the AdGuard DNS and EasyPrivacy DNS lists.

lcb01a commented 1 month ago

I've also encountered this issue when using AdGuard DNS and the EasyPrivacy DNS List. In my case the traffic was rewritten to localhost by AdGuard.

[App] Error: Unhandled exception [App] Critical: Stacktrace: 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(QueueItem queueItem) at System.Threading.Tasks.TaskCompletionSourceWithCancellation1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.HttpConnectionWaiter1.WaitForConnectionAsync(Boolean async, CancellationToken requestCancellationToken) at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.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 VRCFaceTracking.Core.Services.ModuleDataService.AllModules() at VRCFaceTracking.Core.Services.ModuleDataService.GetRemoteModules() at VRCFaceTracking.Services.ActivationService.StartupAsync() at VRCFaceTracking.Services.ActivationService.ActivateAsync(Object activationArgs) at VRCFaceTracking.App.OnLaunched(LaunchActivatedEventArgs args) at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state) at Microsoft.UI.Dispatching.DispatcherQueueSynchronizationContext.<>c__DisplayClass2_0.<Post>b__0() [App] Critical: Inner exception: System.Net.Sockets.SocketException (10061): No connection could be made because the target machine actively refused it. 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.<ConnectAsync>g__WaitForConnectWithCancellation|281_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken) [App] Critical: Message: No connection could be made because the target machine actively refused it. (rjlk4u22t36tvqz3bvbkwv675a0wbous.lambda-url.us-east-1.on.aws:443)