Blooym / Wholist

A Dalamud plugin to show which players are near you, alike to World of Warcraft's "/who" command.
GNU Affero General Public License v3.0
5 stars 3 forks source link

Bug: Logout will crash the plugin #37

Closed iv230 closed 11 months ago

iv230 commented 1 year ago

Preflight Checklist

Bug Behavior

When opening the plugin window after logged out the window opened, it stays fully blank

Expected Behavior

The window displays information nrmally

Steps To Reproduce

  1. Open who window
  2. Disconnect from your character
  3. Reconnect
  4. Open /who once again

Additional Information

Looped draw error

2023-08-13 21:53:41.896 +02:00 [ERR] Exception during raise of Void Draw()
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at Dalamud.Game.ClientState.Objects.Types.GameObject.Equals(Object obj) in C:\goatsoft\companysecrets\dalamud\Game\ClientState\Objects\Types\GameObject.cs:line 85
   at System.Collections.Generic.Dictionary`2.FindValue(TKey key)
   at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
   at Sirensong.Cache.Collections.CacheCollection`2.GetOrAdd(TKey key, Func`2 valueFactory) in /work/repo/Sirensong/Sirensong/Cache/Collections/CacheCollection.cs:line 248
   at Wholist.Game.PlayerManager.GetNearbyPlayers(Int32 maxPlayers, Boolean filterAfk, Boolean prioritizeKnownPlayers) in /work/repo/Wholist/Game/PlayerManager.cs:line 91
   at Wholist.UserInterface.Windows.NearbyPlayers.NearbyPlayersLogic.GetNearbyPlayers() in /work/repo/Wholist/UserInterface/Windows/NearbyPlayers/NearbyPlayers.logic.cs:line 49
   at Wholist.UserInterface.Windows.NearbyPlayers.NearbyPlayersWindow.Draw() in /work/repo/Wholist/UserInterface/Windows/NearbyPlayers/NearbyPlayers.window.cs:line 57
   at Dalamud.Interface.Windowing.Window.DrawInternal(DalamudConfiguration configuration) in C:\goatsoft\companysecrets\dalamud\Interface\Windowing\Window.cs:line 317
   at Dalamud.Interface.Windowing.WindowSystem.Draw() in C:\goatsoft\companysecrets\dalamud\Interface\Windowing\WindowSystem.cs:line 152
   at Dalamud.Utility.EventHandlerExtensions.HandleInvoke(Action act) in C:\goatsoft\companysecrets\dalamud\Utility\EventHandlerExtensions.cs:line 96

Error on plugin unload

2023-08-13 21:55:54.121 +02:00 [ERR] [LOCALPLUGIN] Error while unloading Wholist
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at Dalamud.Game.ClientState.Objects.Types.GameObject.GetHashCode() in C:\goatsoft\companysecrets\dalamud\Game\ClientState\Objects\Types\GameObject.cs:line 88
   at System.Collections.Generic.Dictionary`2.FindValue(TKey key)
   at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
   at Sirensong.Cache.Collections.CacheCollection`2.RemoveKey(TKey key, Boolean dispose) in /work/repo/Sirensong/Sirensong/Cache/Collections/CacheCollection.cs:line 151
   at Sirensong.Cache.Collections.CacheCollection`2.Dispose() in /work/repo/Sirensong/Sirensong/Cache/Collections/CacheCollection.cs:line 118
   at Wholist.Game.PlayerManager.Dispose() in /work/repo/Wholist/Game/PlayerManager.cs:line 49
   at Sirensong.IoC.MiniServiceContainer.Dispose() in /work/repo/Sirensong/Sirensong/IoC/MiniServiceContainer.cs:line 42
   at Wholist.Common.Services.Dispose() in /work/repo/Wholist/Common/Services.cs:line 67
   at Dalamud.Plugin.Internal.Types.LocalPlugin.<UnloadAsync>b__68_0() in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Types\LocalPlugin.cs:line 570
   at Dalamud.Game.Framework.RunOnNextTickTaskAction.RunImpl() in C:\goatsoft\companysecrets\dalamud\Game\Framework.cs:line 583
--- End of stack trace from previous location ---
   at Dalamud.Plugin.Internal.Types.LocalPlugin.UnloadAsync(Boolean reloading, Boolean waitBeforeLoaderDispose) in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Types\LocalPlugin.cs:line 570
2023-08-13 21:55:54.122 +02:00 [INF] LASTEXCEPTION:eyJXaGVuIjoiMjAyMy0wOC0xM1QyMTo1NTo1NC4xMjI4OTI2KzAyOjAwIiwiSW5mbyI6IlN5c3RlbS5BY2Nlc3NWaW9sYXRpb25FeGNlcHRpb246IEF0dGVtcHRlZCB0byByZWFkIG9yIHdyaXRlIHByb3RlY3RlZCBtZW1vcnkuIFRoaXMgaXMgb2Z0ZW4gYW4gaW5kaWNhdGlvbiB0aGF0IG90aGVyIG1lbW9yeSBpcyBjb3JydXB0LlxyXG4gICBhdCBEYWxhbXVkLkdhbWUuQ2xpZW50U3RhdGUuT2JqZWN0cy5UeXBlcy5HYW1lT2JqZWN0LkdldEhhc2hDb2RlKCkgaW4gQzpcXGdvYXRzb2Z0XFxjb21wYW55c2VjcmV0c1xcZGFsYW11ZFxcR2FtZVxcQ2xpZW50U3RhdGVcXE9iamVjdHNcXFR5cGVzXFxHYW1lT2JqZWN0LmNzOmxpbmUgODhcclxuICAgYXQgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuRGljdGlvbmFyeWAyLkZpbmRWYWx1ZShUS2V5IGtleSlcclxuICAgYXQgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuRGljdGlvbmFyeWAyLlRyeUdldFZhbHVlKFRLZXkga2V5LCBUVmFsdWUmIHZhbHVlKVxyXG4gICBhdCBTaXJlbnNvbmcuQ2FjaGUuQ29sbGVjdGlvbnMuQ2FjaGVDb2xsZWN0aW9uYDIuUmVtb3ZlS2V5KFRLZXkga2V5LCBCb29sZWFuIGRpc3Bvc2UpIGluIC93b3JrL3JlcG8vU2lyZW5zb25nL1NpcmVuc29uZy9DYWNoZS9Db2xsZWN0aW9ucy9DYWNoZUNvbGxlY3Rpb24uY3M6bGluZSAxNTFcclxuICAgYXQgU2lyZW5zb25nLkNhY2hlLkNvbGxlY3Rpb25zLkNhY2hlQ29sbGVjdGlvbmAyLkRpc3Bvc2UoKSBpbiAvd29yay9yZXBvL1NpcmVuc29uZy9TaXJlbnNvbmcvQ2FjaGUvQ29sbGVjdGlvbnMvQ2FjaGVDb2xsZWN0aW9uLmNzOmxpbmUgMTE4XHJcbiAgIGF0IFdob2xpc3QuR2FtZS5QbGF5ZXJNYW5hZ2VyLkRpc3Bvc2UoKSBpbiAvd29yay9yZXBvL1dob2xpc3QvR2FtZS9QbGF5ZXJNYW5hZ2VyLmNzOmxpbmUgNDlcclxuICAgYXQgU2lyZW5zb25nLklvQy5NaW5pU2VydmljZUNvbnRhaW5lci5EaXNwb3NlKCkgaW4gL3dvcmsvcmVwby9TaXJlbnNvbmcvU2lyZW5zb25nL0lvQy9NaW5pU2VydmljZUNvbnRhaW5lci5jczpsaW5lIDQyXHJcbiAgIGF0IFdob2xpc3QuQ29tbW9uLlNlcnZpY2VzLkRpc3Bvc2UoKSBpbiAvd29yay9yZXBvL1dob2xpc3QvQ29tbW9uL1NlcnZpY2VzLmNzOmxpbmUgNjdcclxuICAgYXQgRGFsYW11ZC5QbHVnaW4uSW50ZXJuYWwuVHlwZXMuTG9jYWxQbHVnaW4uPFVubG9hZEFzeW5jPmJfXzY4XzAoKSBpbiBDOlxcZ29hdHNvZnRcXGNvbXBhbnlzZWNyZXRzXFxkYWxhbXVkXFxQbHVnaW5cXEludGVybmFsXFxUeXBlc1xcTG9jYWxQbHVnaW4uY3M6bGluZSA1NzBcclxuICAgYXQgRGFsYW11ZC5HYW1lLkZyYW1ld29yay5SdW5Pbk5leHRUaWNrVGFza0FjdGlvbi5SdW5JbXBsKCkgaW4gQzpcXGdvYXRzb2Z0XFxjb21wYW55c2VjcmV0c1xcZGFsYW11ZFxcR2FtZVxcRnJhbWV3b3JrLmNzOmxpbmUgNTgzXHJcbi0tLSBFbmQgb2Ygc3RhY2sgdHJhY2UgZnJvbSBwcmV2aW91cyBsb2NhdGlvbiAtLS1cclxuICAgYXQgRGFsYW11ZC5QbHVnaW4uSW50ZXJuYWwuVHlwZXMuTG9jYWxQbHVnaW4uVW5sb2FkQXN5bmMoQm9vbGVhbiByZWxvYWRpbmcsIEJvb2xlYW4gd2FpdEJlZm9yZUxvYWRlckRpc3Bvc2UpIGluIEM6XFxnb2F0c29mdFxcY29tcGFueXNlY3JldHNcXGRhbGFtdWRcXFBsdWdpblxcSW50ZXJuYWxcXFR5cGVzXFxMb2NhbFBsdWdpbi5jczpsaW5lIDU3MCIsIkNvbnRleHQiOiJbUExVR0lOV10gUGx1Z2luIGluc3RhbGxlciB0aHJldyBhbiB1bmV4cGVjdGVkIGVycm9yIn0=
2023-08-13 21:55:54.122 +02:00 [ERR] [PLUGINW] Plugin installer threw an unexpected error
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at Dalamud.Game.ClientState.Objects.Types.GameObject.GetHashCode() in C:\goatsoft\companysecrets\dalamud\Game\ClientState\Objects\Types\GameObject.cs:line 88
   at System.Collections.Generic.Dictionary`2.FindValue(TKey key)
   at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
   at Sirensong.Cache.Collections.CacheCollection`2.RemoveKey(TKey key, Boolean dispose) in /work/repo/Sirensong/Sirensong/Cache/Collections/CacheCollection.cs:line 151
   at Sirensong.Cache.Collections.CacheCollection`2.Dispose() in /work/repo/Sirensong/Sirensong/Cache/Collections/CacheCollection.cs:line 118
   at Wholist.Game.PlayerManager.Dispose() in /work/repo/Wholist/Game/PlayerManager.cs:line 49
   at Sirensong.IoC.MiniServiceContainer.Dispose() in /work/repo/Sirensong/Sirensong/IoC/MiniServiceContainer.cs:line 42
   at Wholist.Common.Services.Dispose() in /work/repo/Wholist/Common/Services.cs:line 67
   at Dalamud.Plugin.Internal.Types.LocalPlugin.<UnloadAsync>b__68_0() in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Types\LocalPlugin.cs:line 570
   at Dalamud.Game.Framework.RunOnNextTickTaskAction.RunImpl() in C:\goatsoft\companysecrets\dalamud\Game\Framework.cs:line 583
--- End of stack trace from previous location ---
   at Dalamud.Plugin.Internal.Types.LocalPlugin.UnloadAsync(Boolean reloading, Boolean waitBeforeLoaderDispose) in C:\goatsoft\companysecrets\dalamud\Plugin\Internal\Types\LocalPlugin.cs:line 570
Blooym commented 11 months ago

Hopefully fixed in 3bc3d5c55112accbfa261e82fba88762e868221c