Uno.Samples icon indicating copy to clipboard operation
Uno.Samples copied to clipboard

[UI/ChatSignalR][Wasm] Freezes on an image when deploying

Open Marc-Antoine-Soucy opened this issue 1 year ago • 3 comments

You get to this image, and then it stays frozen. image It might be related to these errors in the output:

fail: Microsoft.UI.Xaml.BrushTransition[0]
      The member BrushTransition.BrushTransition() is not implemented. For more information, visit https://aka.platform.uno/notimplemented?m=Microsoft.UI.Xaml.BrushTransition.BrushTransition.BrushTransition%28%29
fail: Microsoft.UI.Xaml.BrushTransition[0]
      The member TimeSpan BrushTransition.Duration is not implemented. For more information, visit https://aka.platform.uno/notimplemented?m=Microsoft.UI.Xaml.BrushTransition.TimeSpan%20BrushTransition.Duration
fail: Microsoft.UI.Xaml.Controls.ContentPresenter[0]
      The member BrushTransition ContentPresenter.BackgroundTransition is not implemented. For more information, visit https://aka.platform.uno/notimplemented?m=Microsoft.UI.Xaml.Controls.ContentPresenter.BrushTransition%20ContentPresenter.BackgroundTransition
fail: Microsoft.UI.Xaml.Controls.CommandBarFlyout[0]
      The member CommandBarFlyout.CommandBarFlyout() is not implemented. For more information, visit https://aka.platform.uno/notimplemented?m=Microsoft.UI.Xaml.Controls.CommandBarFlyout.CommandBarFlyout.CommandBarFlyout%28%29
fail: Microsoft.UI.Xaml.Controls.TextCommandBarFlyout[0]
      The member TextCommandBarFlyout.TextCommandBarFlyout() is not implemented. For more information, visit https://aka.platform.uno/notimplemented?m=Microsoft.UI.Xaml.Controls.TextCommandBarFlyout.TextCommandBarFlyout.TextCommandBarFlyout%28%29
fail: Uno.UI.DataBinding.BindingPropertyHelper[0]
      The [ScrollViewer] property getter does not exist on type [Microsoft.UI.Xaml.Controls.TextBox]
fail: Uno.UI.DataBinding.BindingPropertyHelper[0]
      The [ScrollViewer] property getter does not exist on type [Microsoft.UI.Xaml.Controls.TextBox]
fail: Microsoft.UI.Xaml.Media.Animation.AddDeleteThemeTransition[0]
      The member AddDeleteThemeTransition.AddDeleteThemeTransition() is not implemented. For more information, visit https://aka.platform.uno/notimplemented?m=Microsoft.UI.Xaml.Media.Animation.AddDeleteThemeTransition.AddDeleteThemeTransition.AddDeleteThemeTransition%28%29
fail: Microsoft.UI.Xaml.Media.Animation.ContentThemeTransition[0]
      The member ContentThemeTransition.ContentThemeTransition() is not implemented. For more information, visit https://aka.platform.uno/notimplemented?m=Microsoft.UI.Xaml.Media.Animation.ContentThemeTransition.ContentThemeTransition.ContentThemeTransition%28%29
fail: Microsoft.UI.Xaml.Media.Animation.ReorderThemeTransition[0]
      The member ReorderThemeTransition.ReorderThemeTransition() is not implemented. For more information, visit https://aka.platform.uno/notimplemented?m=Microsoft.UI.Xaml.Media.Animation.ReorderThemeTransition.ReorderThemeTransition.ReorderThemeTransition%28%29
fail: Uno.UI.DataBinding.BindingPropertyHelper[0]
      The [ScrollViewer] property getter does not exist on type [Microsoft.UI.Xaml.Controls.ListView]
fail: Uno.UI.DataBinding.BindingPropertyHelper[0]
      The [ScrollViewer] property getter does not exist on type [Microsoft.UI.Xaml.Controls.ListView]
fail: Uno.UI.Dispatching.CoreDispatcher[0]
      Dispatcher unhandled exception
System.InvalidOperationException: Failed to load UnoChat.MainPage: System.PlatformNotSupportedException: Operation is not supported on this platform.
   at System.Threading.Thread.ThrowIfNoThreadStart(Boolean internalThread) in D:\a\Uno.DotnetRuntime.WebAssembly\Uno.DotnetRuntime.WebAssembly\runtime\src\libraries\System.Private.CoreLib\src\System\Threading\Thread.cs:line 176
   at System.Threading.Thread.Start(Object parameter, Boolean captureContext, Boolean internalThread) in D:\a\Uno.DotnetRuntime.WebAssembly\Uno.DotnetRuntime.WebAssembly\runtime\src\libraries\System.Private.CoreLib\src\System\Threading\Thread.cs:line 205
   at System.Threading.Thread.Start(Object parameter) in D:\a\Uno.DotnetRuntime.WebAssembly\Uno.DotnetRuntime.WebAssembly\runtime\src\libraries\System.Private.CoreLib\src\System\Threading\Thread.cs:line 187
   at System.Reactive.Concurrency.ConcurrencyAbstractionLayerImpl.StartThread(Action`1 action, Object state)
   at System.Reactive.Concurrency.DefaultScheduler.LongRunning.LongScheduledWorkItem`1[[System.Threading.CancellationToken, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]..ctor(CancellationToken state, Action`2 action)
   at System.Reactive.Concurrency.DefaultScheduler.LongRunning.ScheduleLongRunning[CancellationToken](CancellationToken state, Action`2 action)
   at System.Reactive.Linq.ObservableImpl.Delay`1.Base`1.L[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Reactive.Linq.ObservableImpl.Delay`1.Relative[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Reactive, Version=6.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263]].ScheduleDrain()
   at System.Reactive.Linq.ObservableImpl.Delay`1.Relative.L[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].RunCore(Relative parent)
   at System.Reactive.Linq.ObservableImpl.Delay`1.Base`1._[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Reactive.Linq.ObservableImpl.Delay`1.Relative[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Reactive, Version=6.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263]].Run(Relative parent)
   at System.Reactive.Linq.ObservableImpl.Delay`1.Relative[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].Run(_ sink)
   at System.Reactive.Producer`2[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Reactive.Linq.ObservableImpl.Delay`1.Base`1._[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Reactive.Linq.ObservableImpl.Delay`1.Relative[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Reactive, Version=6.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263]], System.Reactive, Version=6.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263]].SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard)
   at System.ObservableExtensions.SubscribeSafe[Model](IObservable`1 source, IObserver`1 observer)
   at System.Reactive.Sink`2[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].Run(IObservable`1 source)
   at System.Reactive.Concurrency.ObserveOn`1.Scheduler[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].Run(ObserveOnObserverNew`1 sink)
   at System.Reactive.Producer`2.<>c[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Reactive.ObserveOnObserverNew`1[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Reactive, Version=6.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263]].<SubscribeRaw>b__1_0(ValueTuple`2 tuple)
   at System.Reactive.Concurrency.Scheduler.<>c__75`1[[System.ValueTuple`2[[System.Reactive.Producer`2[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Reactive.ObserveOnObserverNew`1[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Reactive, Version=6.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263]], System.Reactive, Version=6.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263],[System.Reactive.ObserveOnObserverNew`1[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Reactive, Version=6.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].<ScheduleAction>b__75_0(IScheduler _, ValueTuple`2 tuple)
   at System.Reactive.Concurrency.CurrentThreadScheduler.Schedule[ValueTuple`2](ValueTuple`2 state, TimeSpan dueTime, Func`3 action)
   at System.Reactive.Concurrency.LocalScheduler.Schedule[ValueTuple`2](ValueTuple`2 state, Func`3 action)
   at System.Reactive.Concurrency.Scheduler.ScheduleAction[ValueTuple`2](IScheduler scheduler, ValueTuple`2 state, Action`1 action)
   at System.Reactive.Producer`2[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Reactive.ObserveOnObserverNew`1[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Reactive, Version=6.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263]].SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard)
   at System.Reactive.Producer`2[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Reactive.ObserveOnObserverNew`1[[UnoChat.Client.Message.Model, UnoChat.Wasm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Reactive, Version=6.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263]].Subscribe(IObserver`1 observer)
   at UnoChat.Client.ViewModel.ShouldSendModelsAddedToAllMessagesToMessageObserver(IObserver`1 messageObserver) in C:\p\Uno.Samples\UI\ChatSignalR\UnoChat.Client\UnoChat.Shared\ViewModel.cs:line 212
   at UnoChat.Client.ViewModel.Activate(IObservable`1 messageToSendBoxReturn, IObserver`1 themeObserver, IObserver`1 messageObserver) in C:\p\Uno.Samples\UI\ChatSignalR\UnoChat.Client\UnoChat.Shared\ViewModel.cs:line 227
   at UnoChat.MainPage.OnNavigatedTo(NavigationEventArgs e) in C:\p\Uno.Samples\UI\ChatSignalR\UnoChat.Client\UnoChat.Shared\MainPage.xaml.cs:line 54
   at Microsoft.UI.Xaml.Controls.Frame.InnerNavigate(PageStackEntry entry, NavigationMode mode) in /home/vsts/work/1/s/src/Uno.UI/UI/Xaml/Controls/Frame/Frame.cs:line 283
   at UnoChat.App.OnNavigationFailed(Object sender, NavigationFailedEventArgs e) in C:\p\Uno.Samples\UI\ChatSignalR\UnoChat.Client\UnoChat.Shared\App.xaml.cs:line 98
   at Microsoft.UI.Xaml.Controls.Frame.InnerNavigate(PageStackEntry entry, NavigationMode mode) in /home/vsts/work/1/s/src/Uno.UI/UI/Xaml/Controls/Frame/Frame.cs:line 300
   at Microsoft.UI.Xaml.Controls.Frame.Navigate(Type sourcePageType, Object parameter, NavigationTransitionInfo infoOverride) in /home/vsts/work/1/s/src/Uno.UI/UI/Xaml/Controls/Frame/Frame.cs:line 276
   at Microsoft.UI.Xaml.Controls.Frame.Navigate(Type sourcePageType, Object parameter) in /home/vsts/work/1/s/src/Uno.UI/UI/Xaml/Controls/Frame/Frame.cs:line 271
   at UnoChat.App.OnLaunched(LaunchActivatedEventArgs args) in C:\p\Uno.Samples\UI\ChatSignalR\UnoChat.Client\UnoChat.Shared\App.xaml.cs:line 84
   at Microsoft.UI.Xaml.Application.Initialize() in /home/vsts/work/1/s/src/Uno.UI/UI/Xaml/Application.wasm.cs:line 139
   at Uno.UI.Dispatching.CoreDispatcher.InvokeOperationSafe(UIAsyncOperation operation) in /home/vsts/work/1/s/src/Uno.UI.Dispatching/Core/CoreDispatcher.cs:line 343
fail: Uno.UI.RemoteControl.RemoteControlClient[0]
      Sending message: Uno.UI.RemoteControl.Messages.ProcessorsDiscovery ProcessorsDiscovery
fail: Uno.UI.RemoteControl.RemoteControlClient[0]

Marc-Antoine-Soucy avatar Aug 02 '23 17:08 Marc-Antoine-Soucy

There's also several time this erro message: fail: Uno.UI.RemoteControl.RemoteControlClient[0]

Marc-Antoine-Soucy avatar Aug 02 '23 17:08 Marc-Antoine-Soucy

It's probably related to #417

Marc-Antoine-Soucy avatar Aug 02 '23 19:08 Marc-Antoine-Soucy

It is indeed another deadlock for an issue similar to this: https://github.com/unoplatform/uno/issues/13370

To be exact, this is caused by the Delay Here (this is in the ViewModel):

return Observable
    .FromEvent<NotifyCollectionChangedEventHandler, NotifyCollectionChangedEventArgs>(
        handler => (s, e) => handler(e),
        handler => _allMessages.CollectionChanged += handler,
        handler => _allMessages.CollectionChanged -= handler)
    .Where(args => args.Action == NotifyCollectionChangedAction.Add)
    .Select(args => args.NewItems.OfType<Message.Model>().FirstOrDefault())
    .Where(model => model != null)
//// PROBLEMATIC LINE FOR WASM
    .Delay(TimeSpan.FromMilliseconds(10), Schedulers.Default) // Wait for the list view to have been updated
////
    .ObserveOn(Schedulers.Dispatcher)
    .Subscribe(messageObserver);

Marc-Antoine-Soucy avatar Aug 30 '23 17:08 Marc-Antoine-Soucy