Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Bug / Crash  Stitcher breaks simulation
#1
Enabling or disabling ObiStitcher does not work properly, because simulation is running, error is logged to console.
However deactivation of gameobject with stitcher actually breaks solver in some way and simulation does not work anymore - unity must be restarted.


Attached Files Thumbnail(s)
   
Reply
#2
(19-09-2025, 11:47 AM)Qriva0 Wrote: Enabling or disabling ObiStitcher does not work properly, because simulation is running, error is logged to console.
However deactivation of gameobject with stitcher actually breaks solver in some way and simulation does not work anymore - unity must be restarted.

Hi,

I'm unable to reproduce this issue, tried enabling/disabling the ObiStitcher component in the RuntimeCloth sample scene. What Obi version/Unity version are you using? can you describe steps to trigger this?

The error message you posted seems likely unrelated, as it's an error while trying to set the velocity of a rigidbody.
Reply
#3
(19-09-2025, 12:26 PM)josemendez Wrote: Hi,

I'm unable to reproduce this issue, tried enabling/disabling the ObiStitcher component in the RuntimeCloth sample scene. What Obi version/Unity version are you using? can you describe steps to trigger this?

The error message you posted seems likely unrelated, as it's an error while trying to set the velocity of a rigidbody.

Obi 7.1 and I tried that demo scene, and it does not work too, but this time I managed to crash unity.
Try to disable and enable gameobject with stitcher several times, and try to make it fast.

BTW offtopic -  I was unable to run cloth tearing on my pc, there was always some error or there was no cloth, can't remember exactly. I think could not create valid, working blueprint.
In my case stitcher is not very important right now, just wanted to try it, so don't worry about priority.

Enabling and disabling gmaeobject causes this error for sure:
Quote:InvalidOperationException: The previously scheduled job BurstStitchConstraintsBatch:StitchConstraintsBatchJob writes to the UNKNOWN_OBJECT_TYPE StitchConstraintsBatchJob.lambdas. You must call JobHandle.Complete() on the job BurstStitchConstraintsBatch:StitchConstraintsBatchJob, before you can deallocate the UNKNOWN_OBJECT_TYPE safely.
Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle.CheckDeallocateAndThrow (Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle handle) (at <0ce54f5b9f2640ff972376aa8047c49d>:0)
Obi.ObiNativeList`1[T].Dispose (System.Boolean disposing) (at Assets/Obi/Scripts/Common/DataStructures/NativeList/ObiNativeList.cs:143)
Obi.ObiNativeList`1[T].Dispose () (at Assets/Obi/Scripts/Common/DataStructures/NativeList/ObiNativeList.cs:151)
Obi.ObiStitcher.RemoveFromSolver (Obi.ObiSolver solver) (at Assets/Obi/Scripts/Common/Utils/ObiStitcher.cs:202)
Obi.ObiStitcher.Actor_OnBlueprintUnloaded (Obi.ObiActor actor, Obi.ObiActorBlueprint blueprint) (at Assets/Obi/Scripts/Common/Utils/ObiStitcher.cs:153)
Obi.ObiStitcher.UnregisterActor (Obi.ObiActor actor) (at Assets/Obi/Scripts/Common/Utils/ObiStitcher.cs:104)
Obi.ObiStitcher.OnDisable () (at Assets/Obi/Scripts/Common/Utils/ObiStitcher.cs:116)
UnityEngine.GUIUtilityLenguarocessEvent(Int32, IntPtr, Boolean&)

Then later it spams something like that:
Quote:System.IndexOutOfRangeException: Index -8084 is out of range of '387' Length.
This Exception was thrown from a job compiled with Burst, which has limited exception support.
0x00007ff92f8afcfb (Unity) burst_abort
0x00007ff93dad0d3e (ab7a4020aa0616a746a3c8854f51377) burst_Abort_Trampoline
0x00007ff93da41ef3 (ab7a4020aa0616a746a3c8854f51377) Unity.Collections.NativeArray`1<float>.FailOutOfRangeError (at path/Library/PackageCache/com.unity.burst@6aff1dd08a0c/.Runtime/unknown/unknown:0)
0x00007ff93dab73b8 (ab7a4020aa0616a746a3c8854f51377) Unity.Jobs.IJobExtensions.JobStruct`1<Obi.BurstStitchConstraintsBatch.StitchConstraintsBatchJob>.Execute(ref Obi.BurstStitchConstraintsBatch.StitchConstraintsBatchJob data, System.IntPtr additionalPtr, System.IntPtr bufferRangePatchData, ref Unity.Jobs.LowLevel.Unsafe.JobRanges ranges, int jobIndex) -> void...
Reply