unity-wakatime: Native Collection has not been disposed, resulting in a memory leak.

This happened in 2021.1. Every time I press “Play” button, they appear in console. I used com.unity.jobs and caught these:

A Native Collection has not been disposed, resulting in a memory leak. Allocated from: Unity.Collections.NativeArray`1:.ctor(Byte[], Allocator) UnityEngine.Networking.UploadHandlerRaw:.ctor(Byte[]) WakaTime.Plugin:SendHeartbeat(Boolean) (at Library\PackageCache\com.vladfaust.unitywakatime@4dedbeac2e\Editor\Plugin.cs:145) WakaTime.Plugin:OnSceneClosing(Scene, Boolean) (at Library\PackageCache\com.vladfaust.unitywakatime@4dedbeac2e\Editor\Plugin.cs:205) UnityEditor.SceneManagement.EditorSceneManager:Internal_SceneClosing(Scene, Boolean)

A Native Collection has not been disposed, resulting in a memory leak. Allocated from: Unity.Collections.NativeArray`1:.ctor(Byte[], Allocator) UnityEngine.Networking.UploadHandlerRaw:.ctor(Byte[]) WakaTime.Plugin:SendHeartbeat(Boolean) (at Library\PackageCache\com.vladfaust.unitywakatime@4dedbeac2e\Editor\Plugin.cs:145) WakaTime.Plugin:Initialize() (at Library\PackageCache\com.vladfaust.unitywakatime@4dedbeac2e\Editor\Plugin.cs:62) WakaTime.Plugin:OnScriptReload() (at Library\PackageCache\com.vladfaust.unitywakatime@4dedbeac2e\Editor\Plugin.cs:181)

A Native Collection has not been disposed, resulting in a memory leak. Allocated from: Unity.Collections.NativeArray`1:.ctor(Byte[], Allocator) UnityEngine.Networking.UploadHandlerRaw:.ctor(Byte[]) WakaTime.Plugin:SendHeartbeat(Boolean) (at Library\PackageCache\com.vladfaust.unitywakatime@4dedbeac2e\Editor\Plugin.cs:145) WakaTime.Plugin:OnPlaymodeStateChanged(PlayModeStateChange) (at Library\PackageCache\com.vladfaust.unitywakatime@4dedbeac2e\Editor\Plugin.cs:185) UnityEditor.EditorApplication:Internal_PlayModeStateChanged(PlayModeStateChange) UnityEditor.EditorApplication:set_isPlaying(Boolean) Unity.Entities.Editor.LiveLinkToolbar:TogglePlaying() (at Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities.Editor\LiveLink\LiveLinkToolbar.cs:94) Unity.Entities.Editor.LiveLinkToolbar:DrawPlaybar(CommandExecuteContext) (at Library\PackageCache\com.unity.entities@0.17.0-preview.41\Unity.Entities.Editor\LiveLink\LiveLinkToolbar.cs:60) UnityEditor.CommandService:ExecuteCommand(String, CommandHint, Object[]) UnityEditor.CommandService:Execute(String, CommandHint, Object[]) UnityEditor.ModeService:Execute(String, CommandHint, Object[]) UnityEditor.ModeService:Execute(String, Object[]) UnityEditor.Toolbars.PlayModeButtons:OverrideGUIHandler() UnityEngine.UIElements.IMGUIContainer:DoOnGUI(Event, Matrix4x4, Rect, Boolean, Rect, Action, Boolean) UnityEngine.UIElements.IMGUIContainer:HandleIMGUIEvent(Event, Matrix4x4, Rect, Action, Boolean) UnityEngine.UIElements.IMGUIContainer:HandleIMGUIEvent(Event, Action, Boolean) UnityEngine.UIElements.IMGUIContainer:HandleIMGUIEvent(Event, Boolean) UnityEngine.UIElements.IMGUIContainer:SendEventToIMGUIRaw(EventBase, Boolean, Boolean) UnityEngine.UIElements.IMGUIContainer:SendEventToIMGUI(EventBase, Boolean, Boolean) UnityEngine.UIElements.IMGUIContainer:HandleEvent(EventBase) UnityEngine.UIElements.CallbackEventHandler:HandleEventAtTargetPhase(EventBase) UnityEngine.UIElements.MouseCaptureDispatchingStrategy:DispatchEvent(EventBase, IPanel) UnityEngine.UIElements.EventDispatcher:ApplyDispatchingStrategies(EventBase, IPanel, Boolean) UnityEngine.UIElements.EventDispatcher:ProcessEvent(EventBase, IPanel) UnityEngine.UIElements.EventDispatcher:ProcessEventQueue() UnityEngine.UIElements.EventDispatcher:OpenGate() UnityEngine.UIElements.EventDispatcherGate:Dispose() UnityEngine.UIElements.EventDispatcher:ProcessEvent(EventBase, IPanel) UnityEngine.UIElements.EventDispatcher:Dispatch(EventBase, IPanel, DispatchMode) UnityEngine.UIElements.BaseVisualElementPanel:SendEvent(EventBase, DispatchMode) UnityEngine.UIElements.UIElementsUtility:DoDispatch(BaseVisualElementPanel) UnityEngine.UIElements.UIElementsUtility:UnityEngine.UIElements.IUIElementsUtility.ProcessEvent(Int32, IntPtr, Boolean&) UnityEngine.UIElements.UIEventRegistration:ProcessEvent(Int32, IntPtr) UnityEngine.UIElements.<>c:<.cctor>b__1_2(Int32, IntPtr) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Reactions: 3
  • Comments: 22 (5 by maintainers)

Most upvoted comments

@alanhamlett Can we remove the link to vladfaust’s version of unity wakatime from Wakatime’s website? This bug has been unresolved for 1.5 years and there are better alternatives without the bug. Or at least put the link at the bottom of the list with a note that it has unresolved bugs.

Since this problem still isn’t fixed, I decided to create my own plugin. Used this one as example, but I started from zero in order to create better readable code. At the risk of being flamed for shameless advertising, https://github.com/vanBassum/Wakatime.Unity 😃

Please give it a try, and let me know if anything needs tweaking.

Since this problem still isn’t fixed, I decided to create my own plugin. Used this one as example, but I started from zero in order to create better readable code. At the risk of being flamed for shameless advertising, https://github.com/vanBassum/Wakatime.Unity 😃

Please give it a try, and let me know if anything needs tweaking.

Thank you!

Hello! Curious if this has been investigated yet.

The easiest fix i found was to go to the PlayFabEditorHttp script, go the the Post coroutine method, and add www.Dispose(); at the end of the method

@Hermesiss let’s begin with fixing this issue (you’re a collaborator) 😃