Search Issue Tracker

Fixed

Fixed in 2022.3.30f1, 6000.0.1f1

Won't Fix in 2023.2.X

Votes

0

Found in

2021.3.38f1

2022.3.24f1

2023.2.20f1

6000.0.0b16

7000.0.0a1

Issue ID

UUM-70009

Regression

No

DownloadHandlerTexture can access a destroyed texture object on destruction

--

-

If DownloadHandlerTexture.GetContent is used to query a texture and that texture is explicitly destroyed prior to the destruction of DownloadHandlerTexture, this can lead to an access violation in the destructor.

The destructor tries to dereference m_Texture if it was queried, where it could've been explicitly destroyed as a user-owned texture prior to this destruction.
{code:java}
 if (m_Queried)
            RemoveGarbageCollectSharedAssetsExclusion(m_Texture->GetInstanceID());{code}
A straightforward way to reproduce this is with the process in the attached project where Dispose isn't expicitly called, and handler destruction is left to GC. I've found -debugallocator needs to be used for this to reliably be detected.

 

*Steps to reproduce:*

1. Either build a player using the attached project, or the prebuilt exe.

2. Run the player exe with *-debugallocator*

3. Press 'D' to trigger the download event

*Actual results:* 

An access violation should occur when running with -debugallocator

*Expected results:* 

No access violation or crash

*Reproducible with versions:* Seen on 2022.3.22f1, looks present on all

*Tested on (OS):* Windows

  1. Resolution Note (2023.2.X):

    Closing as Won't fix due to 2023.2 reaching it's EOL.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.