View Issue Details

IDProjectCategoryView StatusLast Update
0001853NoesisGUIUnity3Dpublic2020-12-11 12:13
ReporterblafolletteAssigned Tosfernandez 
PrioritynormalSeveritycrashReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.0.7 
Target Version3.0.9Fixed in Version3.0.9 
Summary0001853: Unity crash being caused by a ListView ScollViewer style's GridViewHeaderRowPresenter element
DescriptionIn our Unity project, we have a ListView with a style targeting type ScrollViewer. In the ScrollViewer element inside a ControlTemplate part of the style, we have a GridViewHeaderRowPresenter.

What we're seeing is that this setup works just fine in WPF, but in Unity (either editor or build) viewing the pages which use the ListView control described above, we quickly get a crash with the following description:

[Code]
Description:
Faulting application name: Unity.exe, version: 2019.4.9.65162, time stamp: 0x5f3b4240
Faulting module name: ucrtbase.dll, version: 10.0.18362.1110, time stamp: 0xb4cacc38
Exception code: 0xc0000409
Fault offset: 0x000000000006dace
Faulting process id: 0x6080
Faulting application start time: 0x01d6a78595d5865b
Faulting application path: D:\Unitys\2019.4.9f1\Editor\Unity.exe
Faulting module path: C:\WINDOWS\System32\ucrtbase.dll
[/Code]

This happens with no more specification than:

[Code]
<ScrollViewer Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" PanningMode="HorizontalFirst">
    <GridViewHeaderRowPresenter/>
</ScrollViewer>
[/Code]

If we remove <GridViewHeaderRowPresenter/> from the style declaration, the crash no longer occurs.

NOTE: I haven't been able to find any .dmp file associated with the crash. Attached are the Windows Event Viewer log of the error, and the player.log from the compiled Unity build of the project from when the app crashed with this error.

I have also attached a copy of the callstack from attaching VS after a crash, and the final exit point source as given from the pdb for ucrtbase.dll
Steps To Reproduce1. Add the attached page with the list view and the attached style page to a project
2. add at least one other page to allow navigation back and forth to the list view page.
3. navigate back and forth, causing the list view page to load multiple times
4. eventually the crash will occur
TagsNo tags attached.
PlatformWindows

Activities

blafollette

blafollette

2020-12-04 16:12

reporter  

ListViewControlPage.xaml (881 bytes)
Style.xaml (1,174 bytes)
EventViewer.log (1,994 bytes)
Player.log (69,941 bytes)
purevirt.cpp (1,099 bytes)
VS_callstack.txt (968 bytes)
 	ucrtbase.dll!abort()	Unknown
>	vcruntime140.dll!_purecall() Line 29	C++
 	Noesis.dll!00007ff844b39b06()	Unknown
 	Noesis.dll!00007ff844b39b84()	Unknown
 	Noesis.dll!00007ff844997a1b()	Unknown
 	00000268eb75cb97()	Unknown
 	00000268eb75ca73()	Unknown
 	0000026ad1131ca3()	Unknown
 	0000026ad112fc83()	Unknown
 	0000026ad112f9d3()	Unknown
 	0000026ad0050803()	Unknown
 	0000026ad00502fb()	Unknown
 	0000026adf87ebf8()	Unknown
 	mono-2.0-bdwgc.dll!mono_jit_runtime_invoke(_MonoMethod * method, void * obj, void * * params, _MonoObject * * exc, _MonoError * error) Line 2809	C
 	mono-2.0-bdwgc.dll!do_runtime_invoke(_MonoMethod * method, void * obj, void * * params, _MonoObject * * exc, _MonoError * error) Line 2921	C
 	[Inline Frame] mono-2.0-bdwgc.dll!mono_runtime_try_invoke(_MonoMethod *) Line 3026	C
 	mono-2.0-bdwgc.dll!mono_runtime_invoke(_MonoMethod * method, void * obj, void * * params, _MonoObject * * exc) Line 2968	C
 	[External Code]	
VS_callstack.txt (968 bytes)
blafollette

blafollette

2020-12-04 16:23

reporter   ~0006862

Here's a copy of the callstack from Visual Studio attached to the UnityEditor after the crash.

VS_Unity_callstack.txt (1,835 bytes)
 	ucrtbase.dll!abort()	Unknown
>	vcruntime140.dll!_purecall() Line 29	C++
 	Noesis.dll!00007ff838389b06()	Unknown
 	Noesis.dll!00007ff838389b84()	Unknown
 	Noesis.dll!00007ff8381e7a1b()	Unknown
 	000002280f4c712a()	Unknown
 	000002280f4c707b()	Unknown
 	000002281577bebb()	Unknown
 	000002281577b00b()	Unknown
 	000002281577aec3()	Unknown
 	0000022815751813()	Unknown
 	000002281575169b()	Unknown
 	0000022778407940()	Unknown
 	mono-2.0-bdwgc.dll!00007ff82c94d690()	Unknown
 	mono-2.0-bdwgc.dll!00007ff82c8d2912()	Unknown
 	mono-2.0-bdwgc.dll!00007ff82c8db96f()	Unknown
 	UnityPlayer.dll!scripting_method_invoke(class ScriptingMethodPtr,class ScriptingObjectPtr,struct ScriptingArguments &,class ScriptingExceptionPtr *,bool)	Unknown
 	UnityPlayer.dll!ScriptingInvocation::Invoke(class ScriptingExceptionPtr *,bool)	Unknown
 	UnityPlayer.dll!MonoBehaviour::CallMethodIfAvailable(int)	Unknown
 	UnityPlayer.dll!MonoBehaviour::CallUpdateMethod(int)	Unknown
 	UnityPlayer.dll!BaseBehaviourManager::CommonUpdate<class LateBehaviourManager>(void)	Unknown
 	UnityPlayer.dll!LateBehaviourManager::Update(void)	Unknown
 	UnityPlayer.dll!`InitPlayerLoopCallbacks'::`2'::PreLateUpdateScriptRunBehaviourLateUpdateRegistrator::Forward()	Unknown
 	UnityPlayer.dll!ExecutePlayerLoop(struct NativePlayerLoopSystem *)	Unknown
 	UnityPlayer.dll!ExecutePlayerLoop(struct NativePlayerLoopSystem *)	Unknown
 	UnityPlayer.dll!PlayerLoop(void)	Unknown
 	UnityPlayer.dll!PerformMainLoop()	Unknown
 	UnityPlayer.dll!MainMessageLoop()	Unknown
 	UnityPlayer.dll!UnityMainImpl(struct HINSTANCE__ *,struct HINSTANCE__ *,wchar_t *,int)	Unknown
 	UnityPlayer.dll!UnityMain()	Unknown
 	Tennis Manager 2021.exe!__scrt_common_main_seh()	Unknown
 	kernel32.dll!BaseThreadInitThunk()	Unknown
 	ntdll.dll!RtlUserThreadStart()	Unknown
VS_Unity_callstack.txt (1,835 bytes)
sfernandez

sfernandez

2020-12-04 17:16

manager   ~0006863

When Unity crashes it usually shows a crash dialog with the information of the crash, and it creates a folder under C:\Users\%UserName%\AppData\Local\Temp\Unity\Crashes with the logs and a .dmp file that we can use debug the crash.
If Unity closes without showing that dialog then you can run Unity and attach Visual Studio so when the crash occurs and pauses on Visual Studio you can go to menu "Debug > Save Dump As.." to save a minidump.

In the meantime I will try to reproduce the crash with the provided xaml and style, thanks.
blafollette

blafollette

2020-12-04 17:20

reporter   ~0006864

Unity definitely crashes without it's usual crash dialogue. I'm able to attach with Visual Studio, so I'll try reproducing it again and get Visual Studio to save out the dump as suggested.
blafollette

blafollette

2020-12-04 17:45

reporter   ~0006865

So, I saved a .dmp file, but it's 2.3 Gbs(?!) I don't know if I can reliably upload it here, but I can try if you feel it will help. Alternately if there's some other place I could try dropping it, let me know.
sfernandez

sfernandez

2020-12-04 17:54

manager   ~0006866

That looks like you are saving a full dump, can you save a Minidump?
If you don't get that option please upload the dump to Google Drive or similar, I'll let you know when I download it so you can delete the file.

By the way, I was not able to reproduce the crash with our recently released 3.0.8 version and Unity 2020. Which version of Noesis and Unity are you using?
blafollette

blafollette

2020-12-04 18:04

reporter   ~0006867

Ok, apparently I accidentally included the heap in the last one. (oops!) I've attached the much more manageably sized one this time.

Unity.dmp (1,740,670 bytes)
sfernandez

sfernandez

2020-12-04 19:12

manager   ~0006868

I think I found the source of the crash, could you please try the following patched library?
https://drive.google.com/file/d/1HrvvrX09lE_EDND4KQSiLi40jS4o6oQ4/view?usp=sharing

Let me know if it works as expected.
blafollette

blafollette

2020-12-04 19:56

reporter  

Unity_2.dmp (1,771,051 bytes)
blafollette

blafollette

2020-12-04 19:56

reporter   ~0006869

That seems like it's improved the length of time before the crash occurs, but the crash still occurs. I've attached the latest .dmp file.

I also forgot to specify previously, but our project is using Unity 2019.4.9
sfernandez

sfernandez

2020-12-05 00:28

manager   ~0006870

Added a few more checks, let's see if now I'm on the right path:
https://drive.google.com/file/d/1cLDWEWR8__JTt9qkSzZCiZ2DWy4VKCBv/view?usp=sharing

As before, if it continues crashing, please send the dumps, they are really helpful.

Thanks your collaboration.
blafollette

blafollette

2020-12-07 09:41

reporter   ~0006878

That seems to have gotten it! I was unable to get the crash to happen with that DLL! So, no more dumps for now ;) but thank you so much for your help with this! It was my pleasure to collaborate for my part, as small as it was. :)

Issue History

Date Modified Username Field Change
2020-12-04 16:12 blafollette New Issue
2020-12-04 16:12 blafollette File Added: ListViewControlPage.xaml
2020-12-04 16:12 blafollette File Added: Style.xaml
2020-12-04 16:12 blafollette File Added: EventViewer.log
2020-12-04 16:12 blafollette File Added: Player.log
2020-12-04 16:12 blafollette File Added: purevirt.cpp
2020-12-04 16:12 blafollette File Added: VS_callstack.txt
2020-12-04 16:13 jsantos Assigned To => sfernandez
2020-12-04 16:13 jsantos Status new => assigned
2020-12-04 16:13 jsantos Target Version => 3.0.9
2020-12-04 16:13 jsantos Description Updated View Revisions
2020-12-04 16:13 jsantos Steps to Reproduce Updated View Revisions
2020-12-04 16:23 blafollette File Added: VS_Unity_callstack.txt
2020-12-04 16:23 blafollette Note Added: 0006862
2020-12-04 17:16 sfernandez Status assigned => feedback
2020-12-04 17:16 sfernandez Note Added: 0006863
2020-12-04 17:19 sfernandez Category C# SDK => Unity3D
2020-12-04 17:20 blafollette Note Added: 0006864
2020-12-04 17:20 blafollette Status feedback => assigned
2020-12-04 17:45 blafollette Note Added: 0006865
2020-12-04 17:54 sfernandez Status assigned => feedback
2020-12-04 17:54 sfernandez Note Added: 0006866
2020-12-04 18:04 blafollette File Added: Unity.dmp
2020-12-04 18:04 blafollette Note Added: 0006867
2020-12-04 18:04 blafollette Status feedback => assigned
2020-12-04 19:12 sfernandez Status assigned => feedback
2020-12-04 19:12 sfernandez Note Added: 0006868
2020-12-04 19:56 blafollette File Added: Unity_2.dmp
2020-12-04 19:56 blafollette Note Added: 0006869
2020-12-04 19:56 blafollette Status feedback => assigned
2020-12-05 00:28 sfernandez Status assigned => feedback
2020-12-05 00:28 sfernandez Note Added: 0006870
2020-12-07 09:41 blafollette Note Added: 0006878
2020-12-07 09:41 blafollette Status feedback => assigned
2020-12-11 12:13 sfernandez Status assigned => resolved
2020-12-11 12:13 sfernandez Resolution open => fixed
2020-12-11 12:13 sfernandez Fixed in Version => 3.0.9