Obi Official Forum

Full Version: Burst Errors in 6.5.2
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Everything is working great on 6.5.0, but once I upgrade to 6.5.2, I start getting thousands of these burst errors spamming the console. I roll back to 6.5.0 and they go away. I'm running on Unity 2021.3.18 with all the latest packages and the built-in pipeline.

Quote:System::InvalidOperationException: The UNKNOWN_OBJECT_TYPE has been declared as [WriteOnly] in the job, but you are reading from it.
This Exception was thrown from a job compiled with Burst, which has limited exception support.
#3 scripting_raise_exception(ScriptingExceptionPtr)
#4 AtomicSafetyHandle_CUSTOM_CheckWriteAndThrowNoEarlyOut_Injected(AtomicSafetyHandle const&)
#5 Unity.Jobs.IJobParallelForExtensions.ParallelForJobStruct`1<Obi.ApplyInertialForcesJob>.Execute
#6 ExecuteJobCopyData(ManagedJobData*, void (*)(void*, void*, void*, void*, int), int)
#7 ForwardJobForEachToManaged(ManagedJobData*, unsigned int)
#8 JobQueue::Exec(JobInfo*, long long, int, bool)
#9 JobQueue::Steal(JobGroup*, JobInfo*, long long, int, bool, bool)
#10 JobQueue::WaitForJobGroupID(JobGroupID, JobQueue::JobQueueWorkStealMode)
#11 CompleteFenceInternal(JobFence&, WorkStealMode)
#12 ScheduleBatchedScriptingJobsAndComplete(JobFence&, ScriptingExceptionPtr*)
#13 JobHandle_CUSTOM_ScheduleBatchedJobsAndComplete(JobFence&)
#14  (Mono JIT Code) (wrapper managed-to-native) Unity.Jobs.JobHandle:ScheduleBatchedJobsAndComplete (Unity.Jobs.JobHandle&)
#15  (Mono JIT Code) [JobHandle.bindings.cs:22] Unity.Jobs.JobHandle:Complete ()
#16  (Mono JIT Code) [BurstSolverImpl.cs:274] Obi.BurstSolverImpl:ApplyFrame (single,single,single)
#17  (Mono JIT Code) [ObiSolver.cs:1505] Obi.ObiSolver:UpdateTransformFrame (single)
#18  (Mono JIT Code) [ObiSolver.cs:1553] Obi.ObiSolver:BeginStep (single)
#19  (Mono JIT Code) [ObiUpdater.cs:63] Obi.ObiUpdater:BeginStep (single)
#20  (Mono JIT Code) [ObiFixedUpdater.cs:48] Obi.ObiFixedUpdater:FixedUpdate ()
#21  (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
#22 mono_jit_runtime_invoke
#23 do_runtime_invoke
#24 mono_runtime_invoke
#25 scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)
#26 ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
#27 MonoBehaviour::CallMethodIfAvailable(int)
#28 MonoBehaviour::CallUpdateMethod(int)
#29 void BaseBehaviourManager::CommonUpdate<FixedBehaviourManager>()
#30 FixedBehaviourManager::Update()
#31 InitPlayerLoopCallbacks()::FixedUpdateScriptRunBehaviourFixedUpdateRegistrator::Forward()
#32 ExecutePlayerLoop(NativePlayerLoopSystem*)
#33 ExecutePlayerLoop(NativePlayerLoopSystem*)
#34 PlayerLoop()
#35 EditorPlayerLoop::Execute()
#36 PlayerLoopController::UpdateScene(bool)
#37 PlayerLoopController::UpdateSceneIfNeeded()
#38 Application::TickTimer()
#39 -[EditorApplication TickTimer]
#40 __NSFireTimer
#41 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
#42 __CFRunLoopDoTimer
#43 __CFRunLoopDoTimers
#44 __CFRunLoopRun
#45 CFRunLoopRunSpecific
#46 RunCurrentEventLoopInMode
#47 ReceiveNextEventCommon
#48 _BlockUntilNextEventMatchingListInModeWithFilter
#49 _DPSNextEvent
#50 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
#51 -[NSApplication run]
#52 NSApplicationMain
#53 EditorMain(int, char const**)
#54 main
#55 ???
System.NullReferenceException: Object reference not set to an instance of an object
This Exception was thrown from a job compiled with Burst, which has limited exception support.
#3 AtomicSafetyHandle::CheckWriteAndBumpSecondaryVersion(AtomicSafetyHandle, ScriptingExceptionPtr*)
#4 AtomicSafetyHandle_CUSTOM_CheckWriteAndBumpSecondaryVersion_Injected(AtomicSafetyHandle const&)
#5 AtomicSafetyHandle_CUSTOM_CheckWriteAndBumpSecondaryVersion_Injected(AtomicSafetyHandle const&)
#6 Unity.Jobs.IJobExtensions.JobStruct`1<Obi.FindFluidParticlesJob>.Execute
#7 ForwardJobToManaged(ManagedJobData*)
#8 JobQueue::Exec(JobInfo*, long long, int, bool)
#9 JobQueue::WaitForJobGroupID(JobGroupID, JobQueue::JobQueueWorkStealMode)
#10 CompleteFenceInternal(JobFence&, WorkStealMode)
#11 ScheduleBatchedScriptingJobsAndComplete(JobFence&, ScriptingExceptionPtr*)
#12 JobHandle_CUSTOM_ScheduleBatchedJobsAndComplete(JobFence&)
#13  (Mono JIT Code) (wrapper managed-to-native) Unity.Jobs.JobHandle:ScheduleBatchedJobsAndComplete (Unity.Jobs.JobHandle&)
#14  (Mono JIT Code) [JobHandle.bindings.cs:22] Unity.Jobs.JobHandle:Complete ()
#15  (Mono JIT Code) [ParticleGrid.cs:457] Obi.ParticleGrid:Update (Obi.BurstSolverImpl,single,Unity.Jobs.JobHandle)
#16  (Mono JIT Code) [BurstSolverImpl.cs:578] Obi.BurstSolverImpl:GenerateContacts (Unity.Jobs.JobHandle,single)
#17  (Mono JIT Code) [BurstSolverImpl.cs:506] Obi.BurstSolverImpl:CollisionDetection (single)
#18  (Mono JIT Code) [ObiSolver.cs:1569] Obi.ObiSolver:BeginStep (single)
#19  (Mono JIT Code) [ObiUpdater.cs:63] Obi.ObiUpdater:BeginStep (single)
#20  (Mono JIT Code) [ObiFixedUpdater.cs:48] Obi.ObiFixedUpdater:FixedUpdate ()
#21  (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
#22 mono_jit_runtime_invoke
#23 do_runtime_invoke
#24 mono_runtime_invoke
#25 scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)
#26 ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)
#27 MonoBehaviour::CallMethodIfAvailable(int)
#28 MonoBehaviour::CallUpdateMethod(int)
#29 void BaseBehaviourManager::CommonUpdate<FixedBehaviourManager>()
#30 FixedBehaviourManager::Update()
#31 InitPlayerLoopCallbacks()::FixedUpdateScriptRunBehaviourFixedUpdateRegistrator::Forward()
#32 ExecutePlayerLoop(NativePlayerLoopSystem*)
#33 ExecutePlayerLoop(NativePlayerLoopSystem*)
#34 PlayerLoop()
#35 EditorPlayerLoop::Execute()
#36 PlayerLoopController::UpdateScene(bool)
#37 PlayerLoopController::UpdateSceneIfNeeded()
#38 Application::TickTimer()
#39 -[EditorApplication TickTimer]
#40 __NSFireTimer
#41 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
#42 __CFRunLoopDoTimer
#43 __CFRunLoopDoTimers
#44 __CFRunLoopRun
#45 CFRunLoopRunSpecific
#46 RunCurrentEventLoopInMode
#47 ReceiveNextEventCommon
#48 _BlockUntilNextEventMatchingListInModeWithFilter
#49 _DPSNextEvent
#50 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
#51 -[NSApplication run]
#52 NSApplicationMain
#53 EditorMain(int, char const**)
#54 main
#55
???
(18-05-2023, 03:37 AM)goldfire Wrote: [ -> ]Everything is working great on 6.5.0, but once I upgrade to 6.5.2, I start getting thousands of these burst errors spamming the console. I roll back to 6.5.0 and they go away. I'm running on Unity 2021.3.18 with all the latest packages and the built-in pipeline.

Hi there!

I'm unable to reproduce this, by installing 6.5.0 and then replacing it by 6.5.2.

Could you disable Burst compilation, to see where the exception is originating? Burst-compiled jobs don't give much information when they raise an exception (as the error itself suggests: "This Exception was thrown from a job compiled with Burst, which has limited exception support.")

Disabling Burst should result in a much better stack trace, pointing to the exact source of the problem.

kind regards