View Revisions: Issue #1750

Summary 0001750: Random crash in complex scenes
Revision 2020-07-07 13:49 by Ext3h
Description Nested ItemsControl (StackPanel, not virtualized, vertical then horizontal), rendering a total of 200 times 45 buttons. Depending on the complexity of the templates, actual numbers may need to be increased.

Expected behavior:
It's slow to compute the layout.

Actual behavior:
It's slow to compute the layout, followed by various callstacks ending up with a write access violation in these top 3 frames:

     vcruntime140.dll!memcpy() Line 243
     Noesis.dll!Noesis::DragDrop::GetClassType() + 4657 bytes
     Noesis.dll!00007ffda806bce4()
     ...
     IView::Update()

The cause is not entirely clear, but it appears to happen whenever scene complexity approaches ~30k allocations.
The system is still far from going out-of-memory (just 200MB used reported by Noesis itself), and it doesn't appear to be dependent on effective render resolution either.

Attached is a minidump for one of the crahes.
Revision 2020-07-07 13:48 by Ext3h
Description Nested ItemsControl (StackPanel, vertical then horizontal), rendering a total of 200 times 45 buttons. Depending on the complexity of the templates, actual numbers may need to be increased.

Expected behavior:
It's slow to compute the layout.

Actual behavior:
It's slow to compute the layout, followed by various callstacks ending up with a write access violation in these top 3 frames:

     vcruntime140.dll!memcpy() Line 243
     Noesis.dll!Noesis::DragDrop::GetClassType() + 4657 bytes
     Noesis.dll!00007ffda806bce4()
     ...
     IView::Update()

The cause is not entirely clear, but it appears to happen whenever scene complexity approaches ~30k allocations.
The system is still far from going out-of-memory (just 200MB used reported by Noesis itself), and it doesn't appear to be dependent on effective render resolution either.

Attached is a minidump for one of the crahes.
Revision 2020-07-07 13:45 by Ext3h
Description Nested ItemsControl (StackPanel), rendering a total of 200 times 45 buttons. Depending on the complexity of the templates, actual numbers may need to be increased.

Expected behavior:
It's slow to compute the layout.

Actual behavior:
It's slow to compute the layout, followed by various callstacks ending up with a write access violation in these top 3 frames:

     vcruntime140.dll!memcpy() Line 243
     Noesis.dll!Noesis::DragDrop::GetClassType() + 4657 bytes
     Noesis.dll!00007ffda806bce4()
     ...
     IView::Update()

The cause is not entirely clear, but it appears to happen whenever scene complexity approaches ~30k allocations.
The system is still far from going out-of-memory (just 200MB used reported by Noesis itself), and it doesn't appear to be dependent on effective render resolution either.

Attached is a minidump for one of the crahes.