unoplatform / uno

Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.
https://platform.uno
Apache License 2.0
8.71k stars 702 forks source link

[iOS] `ListView` deadlock on `ListViewBaseSource.GetCell` #3363

Open jeromelaban opened 4 years ago

jeromelaban commented 4 years ago

Current behavior

The ListView Change height test in snapshots mode freezes the app in deadlock when invoking this method:

https://github.com/unoplatform/uno/blob/545dacd7199c16d2006469e011f7307f1abf76d4/src/Uno.UI/UI/Xaml/Controls/ListViewBase/ListViewBaseSource.iOS.cs#L211

with the following stack trace:

0x16 in ObjCRuntime.Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr    C#
0x72 in UIKit.UICollectionView.DequeueReusableCell at /Library/Frameworks/Xamarin.iOS.framework/Versions/13.20.0.22/src/Xamarin.iOS/UIKit/UICollectionView.g.cs:202,5   C#
0x7A in Windows.UI.Xaml.Controls.ListViewBaseSource.GetCell at src\Uno.UI\UI\Xaml\Controls\ListViewBase\ListViewBaseSource.iOS.cs:211,5 C#

How to reproduce it (as minimally and precisely as possible)

Run the samples automatically to SamplesApp.Windows_UI_Xaml_Controls.ListView.ListViewChangeHeight.

Nuget Package: 3.0-dev

Package Version(s):

Affected platform(s):

Visual Studio:

Relevant plugins:

Anything else we need to know?

jeromelaban commented 4 years ago

/cc @davidjohnoliver

davidjohnoliver commented 4 years ago

😬