Search Issue Tracker

By Design

Votes

0

Found in [Package]

Issue ID

1144526

Regression

No

Not all Jobs are terminated before "OnDestroy" is called

Package: Entity Component System (ECS)

-

Reproduction steps:

1. Open "DidymosECS.zip" project
2. Enter and Exit Play mode
3. See errors in the Console window

Expected Result: No Errors
Actual Result: Errors

Reproduced with: 2019.2.0a11, 2019.1.0f1
Did not reproduce on: 2018.3.13f1 (Errors)

Note:
If the issue doesn't reproduce at first, repeat steps 2-3

Error:
"InvalidOperationException: The previously scheduled job NativeLRUCacheSingle`2:SetJob writes to the NativeArray SetJob.data.cache. You must call JobHandle.Complete() on the job NativeLRUCacheSingle`2:SetJob, before you can deallocate the NativeArray safely."

"A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces to get more details."

  1. Resolution Note:

    The Behaviour is as expected.

    If a container is owned by a MonoBehaviour and jobs from other code might write to it then there should be a JobHandle next to the container that is responsible for completing the job before the container is destroyed.

    The responsibility is on the MonoBehaviour / System code that schedules the job and OnDestroy in the monobehaviour.

Add comment

Log in to post comment