Search Issue Tracker
By Design
Votes
0
Found in
2017.4.9f1
Issue ID
1070406
Regression
Yes
[Windows] Caching.ClearCachedVersion() and Caching.ClearAllCachedVersions() fails to remove Bundle from Cache
To reproduce:
1. Download attached project "CachingBug.zip" and open in Unity
2. Open "Main" scene
3. Open "CacheDemo01" script, comment 90 line and save it
4. Enter Play mode
5. Observe in Console that Caching.ClearCachedVersion() fails to remove bundle from cache
6. Exit Play mode
7. Open "CacheDemo01" script, uncomment 90 line, comment 89 line and save it
8. Enter Play mode
9. Observe in Console that Caching.ClearAllCachedVersions() fails to remove bundle from cache
Notes:
- This issue appears only on Windows
- This issue does not reproduce on OSX
Reproduced on Unity 2017.3.1p3, 2017.3.2f1, 2017.4.9f1, 2018.1.9f1, 2018.2.3f1 and 2018.3.0a9
Not reproduced on Unity 2017.2.3p3 and 2017.3.1p2
Regression on Unity 2017.3.1p3
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Errors are logged when importing an asset at a path with Firebase
- Entering too big of a number in 2D Renderer Lightmode Tags freezes the Editor
- Crash on GUIManager::DoGUIEvent when focusing on the Game view window on a specific project
- Asset creation in the Project Browser is not always undone/inconsistent when the undo shortcut is pressed right after creating an asset
- JobTempAlloc memory leak warning is thrown when the Player is shut down
Resolution Note (2017.4.X):
1. You need to use `UnityWebRequestAssetBundle` since `WWW` isn't supported and doesn't save the correct cache path anymore due to an issue with it not using the correct hash. UWR does.
2. You have to unload their bundle before they can clear their cache. It can't work otherwise. That said there is an odd issue where if they've downloaded the bundle/cached it with UWR but not loaded it through the `DownloadHandlerAssetBundle.GetContent` API then `AssetBundle.UnloadAllAssetBundles(bool)` won't actually unload the bundle. They have to get the bundle from UWR and make sure it's unloaded.
3. You're giving the asset bundle name as a path `abm/examples/unitylogo` because that's the path from StreamingAssets down to their bundle on disk. You can't give that same path to `Caching.LiterallyAnyAPI` because it only caches based on the name itself (and the path of the cache of course), not any sort of given path.