View Issue Details

IDProjectCategoryView StatusLast Update
0003472NoesisGUIUnitypublic2024-09-16 18:43
Reporterstonstad Assigned Tosfernandez  
PrioritynormalSeveritymajor 
Status resolvedResolutionreopened 
Product Version3.2.4 
Target Version3.2.5Fixed in Version3.2.5 
Summary0003472: Random TextBlock and Visual Layout Corruption
Description

The Noesis visual tree and corresponding textblock content becomes corrupt. I am seeing memory shown as text within text locks, and layouts become corrupt.

Observations:

  • It appears to affect textblocks. Bold text is not displayed.
  • It is fixed by completely exiting Unity and restarting it. It is NOT fixed by stopping/starting playback.
  • Corrupted text does not display the correct font.

Please let me know if there is testing you would like to do. I'm keen to roll back to 3.2.2 due to the impact this has.

Attached Files
1.jpg (1,461,983 bytes)
2.jpg (323,583 bytes)
PlatformAny

Relationships

related to 0003554 resolvedsfernandez Noesis crashes Unity editor 

Activities

stonstad

stonstad

2024-07-07 23:58

reporter   ~0009759

Encl. example textblock showing memory content instead of the intended textblock text.

Bugged.jpg (466,034 bytes)
sfernandez

sfernandez

2024-07-08 11:56

manager   ~0009760

Hi, would it be possible to get access to your project to debug it ourselves? If not I could prepare a debug library for you to test, is this windows x64?

stonstad

stonstad

2024-07-08 15:14

reporter   ~0009761

A debug library is the way to go. I'll use it daily and send back any traces/debug information that you need.

stonstad

stonstad

2024-07-08 21:43

reporter   ~0009764

Windows x64.

sfernandez

sfernandez

2024-07-09 11:56

manager   ~0009765

You can download the debug library here: https://drive.google.com/file/d/1tLvoyZj0KmxGC_VpQ1i0b6t1EaJe-ptP/view?usp=sharing
Please send us any crash dump and logs you could find with it.

stonstad

stonstad

2024-07-09 18:01

reporter   ~0009775

It's loaded -- will keep testing.

stonstad

stonstad

2024-07-09 19:35

reporter   ~0009782

Last edited: 2024-07-09 19:36

Encl. crash w/ debug library. Happened when I turned off a Noesis UI layer used for the gaussian blur effect. As far as I can tell, it is not repeatable.

stonstad

stonstad

2024-07-09 22:30

reporter   ~0009785

Encl. crash w debug library. Happened when I clicked a button.

=================================================================
Native Crash Reporting

Got a UNKNOWN while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.

=================================================================
Managed Stacktrace:

  at <unknown> <0xffffffff>
  at Noesis.View:Noesis_View_Update <0x0010c>
  at Noesis.View:Update <0x00192>
  at NoesisView:UpdateInternal <0x0062a>
  at NoesisView:LateUpdate <0x000da>
  at System.Object:runtime_invoke_void__this__ <0x00187>

=================================================================
Received signal SIGSEGV
Obtained 108 stack frames
0x00007ffb2783180b (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2785887e (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27858e25 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27759848 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2787c26c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2775f08d (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb277588e9 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2775850f (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2775843f (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27753e79 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2791f806 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb279213d2 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2791804d (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb279170fe (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26f8e745 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2727d208 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2724efcb (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2724e1b9 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2724d062 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff817f (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff7f42 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff9620 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff92ed (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff7f67 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa1829 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2761532b (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff817f (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff7f42 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa1829 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26e40898 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa1829 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27617aeb (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2724f48b (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2724e26c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2724d062 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2724efcb (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2724e1b9 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2724d062 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff9620 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff9375 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff7f67 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff817f (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff7f42 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff817f (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26ff7f42 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2761586b (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa1829 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb26fa37f8 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27309c8c (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb27350306 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2734fafe (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb2734f5bd (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb273444c0 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007ffb275132dc (Noesis) ArcSegment_SweepDirectionProperty_get
0x0000017a13ccaabd (Mono JIT Code) (wrapper managed-to-native) Noesis.View:Noesis_View_Update (System.Runtime.InteropServices.HandleRef,double)
0x0000017a13cc8f13 (Mono JIT Code) Noesis.View:Update (double) (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.4/Runtime/API/Core/View.cs:379)
0x0000017a13cb589b (Mono JIT Code) NoesisView:UpdateInternal () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.4/Runtime/NoesisView.cs:1508)
0x0000017a13cb51db (Mono JIT Code) NoesisView:LateUpdate () (at D:/Source/StellarConquest/StellarConquest.Utilities/Noesis/3.2.4/Runtime/NoesisView.cs:1409)
0x00000179ad7d3328 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_voidthis (object,intptr,intptr,intptr)
0x00007ffb264a4b7e (mono-2.0-bdwgc) mono_jit_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/mini/mini-runtime.c:3445)
0x00007ffb263dd204 (mono-2.0-bdwgc) do_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/metadata/object.c:3068)
0x00007ffb263dd37c (mono-2.0-bdwgc) mono_runtime_invoke (at C:/build/output/Unity-Technologies/mono/mono/metadata/object.c:3115)
0x00007ff714b7d564 (Unity) scripting_method_invoke
0x00007ff714b5b8e4 (Unity) ScriptingInvocation::Invoke
0x00007ff714b432c4 (Unity) MonoBehaviour::CallMethodIfAvailable
0x00007ff714b433ea (Unity) MonoBehaviour::CallUpdateMethod
0x00007ff7145dea4b (Unity) BaseBehaviourManager::CommonUpdate<LateBehaviourManager>
0x00007ff7145e60ca (Unity) LateBehaviourManager::Update
0x00007ff7148162bd (Unity) InitPlayerLoopCallbacks'::2'::PreLateUpdateScriptRunBehaviourLateUpdateRegistrator::Forward
0x00007ff7147f5a9c (Unity) ExecutePlayerLoop
0x00007ff7147f5c10 (Unity) ExecutePlayerLoop
0x00007ff7147fc4a5 (Unity) PlayerLoop
0x00007ff7157bd4cf (Unity) PlayerLoopController::InternalUpdateScene
0x00007ff7157ca2dd (Unity) PlayerLoopController::UpdateSceneIfNeededFromMainLoop
0x00007ff7157c85e1 (Unity) Application::TickTimer
0x00007ff715c3c20a (Unity) MainMessageLoop
0x00007ff715c41aa0 (Unity) WinMain
0x00007ff71701ef2e (Unity) __scrt_common_main_seh
0x00007ffc978c257d (KERNEL32) BaseThreadInitThunk
0x00007ffc98caaf28 (ntdll) RtlUserThreadStart

sfernandez

sfernandez

2024-07-16 20:53

manager   ~0009817

We might found the source of the text and layout corruption, it could also be related to the mono state corruption crashes.
Could you please try the following library: https://drive.google.com/file/d/1N7zvd8krbyMjn3fY3lbaCB6BGlm_jb4l/view?usp=sharing

stonstad

stonstad

2024-07-16 23:11

reporter   ~0009818

Last edited: 2024-07-16 23:25

Thanks, Sergio!

I installed and I'll continue to test with it.

I received an exception when clicking a button contained with a Worldspace UI Element. It's the ArcSegment call stack that we discussed earlier. I don't know which ticket this behavior is related to. If you would like me to, I can copy details to a different ticket.

========== OUTPUTTING STACK TRACE ==================

0x00007FF9CB757211 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CB22FD3C (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CB5B90CD (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CB5B8E40 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CB5B84FF (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CB5AD325 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CB5AD092 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CB5AC014 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CB5A8D81 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CB5994B9 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CB593E23 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CBAF8CD2 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF9CBAF2D61 (Noesis) ArcSegment_SweepDirectionProperty_get
0x00007FF7D313F379 (Unity) GfxDevice::InsertCustomMarkerCallbackAndDataWithFlags
0x00007FF7D4A2A226 (Unity) GfxDeviceWorker::RunCommand
0x00007FF7D4A31A2B (Unity) GfxDeviceWorker::RunExt
0x00007FF7D4A31B48 (Unity) GfxDeviceWorker::RunGfxDeviceWorker
0x00007FF7D307BBB6 (Unity) Thread::RunThreadWrapper
0x00007FFB2478257D (KERNEL32) BaseThreadInitThunk
0x00007FFB2572AF28 (ntdll) RtlUserThreadStart

update
I have a repeatable reproduction path for this particular exception.

I appear to only get an exception when the following code is invoked on a FrameworkElement after a button click:

 public static Storyboard Grow(this FrameworkElement frameworkElement, FrameworkElement parent, TimeSpan durationTimeSpan, Action completed = null)
 {
     if (parent == null)
         throw new NullReferenceException("parent");
     if (BaseComponent.getCPtr(parent).Handle == IntPtr.Zero)
         throw new NullReferenceException("parent");

     ScaleTransform scaleTransform = new ScaleTransform();
     frameworkElement.RenderTransform = scaleTransform;
     frameworkElement.RenderTransformOrigin = new Point(0.5f, 0.5f);

     string key = "Grow" + frameworkElement.GetHashCode();
     StopStoryboard(key, parent);

     if (parent.Resources.Contains(key))
     {
         UnityEngine.Debug.LogWarning("Resource already exists");
         return null;
     }

     Duration duration = new Duration(durationTimeSpan);

     DoubleAnimation animationX = new DoubleAnimation();
     animationX.EasingFunction = new QuadraticEase() { EasingMode = EasingMode.EaseInOut };
     animationX.Duration = duration;
     animationX.AutoReverse = false;
     animationX.FillBehavior = FillBehavior.Stop;
     animationX.From = 0f;
     animationX.To = 1;

     DoubleAnimation animationY = new DoubleAnimation();
     animationY.EasingFunction = new QuadraticEase() { EasingMode = EasingMode.EaseInOut };
     animationY.Duration = duration;
     animationY.AutoReverse = false;
     animationY.FillBehavior = FillBehavior.Stop;
     animationY.From = 0f;
     animationY.To = 1;

     Storyboard storyboard = new Storyboard();
     storyboard.AutoReverse = false;
     storyboard.Duration = duration;
     storyboard.Children.Add(animationX);
     storyboard.Children.Add(animationY);

     parent.Resources.Add(key, storyboard);

     Storyboard.SetTarget(animationX, frameworkElement);
     Storyboard.SetTargetProperty(animationX, new PropertyPath("RenderTransform.ScaleX"));

     Storyboard.SetTarget(animationY, frameworkElement);
     Storyboard.SetTargetProperty(animationY, new PropertyPath("RenderTransform.ScaleY"));

     storyboard.Completed += (sender2, e2) =>
     {
         parent.Resources.Remove(key);
         scaleTransform.ScaleX = 1.0f;
         scaleTransform.ScaleY = 1.0f;
         completed?.Invoke();
     };

     storyboard.Begin();
     return storyboard;
 }

    public static void StopStoryboard(string key, FrameworkElement parent)
    {
        Storyboard storyboard = parent.TryFindResource(key) as Storyboard;
        if (storyboard != null)
        {
            storyboard.Stop();
            parent.Resources.Remove(key);
        }
    }

*encl stack dump

sfernandez

sfernandez

2024-07-17 11:19

manager   ~0009821

Yes please, create another ticket for the BackgroundEffectBehavior (VisualBrush) issue so it is easier to follow what is happening on each ticket.

stonstad

stonstad

2024-07-17 22:51

reporter   ~0009826

Sergio, I didn't see any errant behavior with textblock data corruption using this DLL. But to be honest, it was very hit or miss before, and it seemed to have some kind of association with XAML imports or domain reloads.

Issue History

Date Modified Username Field Change
2024-07-07 23:57 stonstad New Issue
2024-07-07 23:57 stonstad File Added: 1.jpg
2024-07-07 23:57 stonstad File Added: 2.jpg
2024-07-07 23:58 stonstad Note Added: 0009759
2024-07-07 23:58 stonstad File Added: Bugged.jpg
2024-07-08 11:49 jsantos Assigned To => sfernandez
2024-07-08 11:49 jsantos Status new => assigned
2024-07-08 11:49 jsantos Target Version => 3.2.5
2024-07-08 11:56 sfernandez Status assigned => resolved
2024-07-08 11:56 sfernandez Resolution open => fixed
2024-07-08 11:56 sfernandez Note Added: 0009760
2024-07-08 11:56 sfernandez Status resolved => feedback
2024-07-08 11:56 sfernandez Resolution fixed => reopened
2024-07-08 15:14 stonstad Note Added: 0009761
2024-07-08 15:14 stonstad Status feedback => assigned
2024-07-08 21:43 stonstad Note Added: 0009764
2024-07-09 11:56 sfernandez Status assigned => feedback
2024-07-09 11:56 sfernandez Note Added: 0009765
2024-07-09 18:01 stonstad Note Added: 0009775
2024-07-09 18:01 stonstad Status feedback => assigned
2024-07-09 19:35 stonstad Note Added: 0009782
2024-07-09 19:35 stonstad File Added: Crash_2024-07-09_173143211.zip
2024-07-09 19:36 stonstad Note Edited: 0009782
2024-07-09 22:30 stonstad Note Added: 0009785
2024-07-09 22:30 stonstad File Added: Crash_2024-07-09_202757012.zip
2024-07-16 20:53 sfernandez Status assigned => feedback
2024-07-16 20:53 sfernandez Note Added: 0009817
2024-07-16 23:11 stonstad Note Added: 0009818
2024-07-16 23:11 stonstad File Added: Crash_2024-07-16_210910668.zip
2024-07-16 23:11 stonstad Status feedback => assigned
2024-07-16 23:22 stonstad Note Edited: 0009818
2024-07-16 23:25 stonstad Note Edited: 0009818
2024-07-17 11:19 sfernandez Status assigned => feedback
2024-07-17 11:19 sfernandez Note Added: 0009821
2024-07-17 22:51 stonstad Note Added: 0009826
2024-07-17 22:51 stonstad Status feedback => assigned
2024-09-05 12:54 sfernandez Relationship added related to 0003554
2024-09-16 18:43 sfernandez Status assigned => resolved
2024-09-16 18:43 sfernandez Fixed in Version => 3.2.5
2025-10-10 13:29 jsantos Category Unity3D => Unity