MidoriKami / NoTankYou

FFXIV Dalamud Plugin, Shows a "Tank Stance" warning if no tanks in your party have their tank stance on.
Other
13 stars 13 forks source link

Crash with Dalamud Staging #2

Closed SyniRon closed 2 years ago

SyniRon commented 2 years ago

Getting crash with this plugin while changing zones. After crash game would not load until I deleted the plugin from the installed plugins folder manually.

Please let me know if you need any more info or testing.

Other installed plugins: https://puu.sh/IufO5/aedcd9871c.png

2021-12-06 09:02:10.799 -05:00 [ERR] Exception on ProcessZonePacketDown hook. Header: 00-00-00-00-00-00-00-00-B0-10-4C-7E-CD-02-00-00-14-00-C4-02-00-00-12-02-E3-17-AE-61-00-00-00-00
System.NullReferenceException: Object reference not set to an instance of an object.
   at NoTankYou.TerritoryManager.UpdateWindowStatus() in D:\Documents\Visual Studio 2022\Dalamud\NoTankYou\NoTankYou\TerritoryManager.cs:line 53
   at NoTankYou.TerritoryManager.OnTerritoryChanged(Object sender, UInt16 e) in D:\Documents\Visual Studio 2022\Dalamud\NoTankYou\NoTankYou\TerritoryManager.cs:line 39
   at Dalamud.Game.ClientState.ClientState.SetupTerritoryTypeDetour(IntPtr manager, UInt16 terriType) in C:\goatsoft\companysecrets\dalamud\Game\ClientState\ClientState.cs:line 148
   at Dalamud.Game.Network.GameNetwork.ProcessZonePacketDownDetour(IntPtr a, UInt32 targetId, IntPtr dataPtr) in C:\goatsoft\companysecrets\dalamud\Game\Network\GameNetwork.cs:line 134
MidoriKami commented 2 years ago

Were you in a party when you changed zones? Additionaly what zone were you leaving from and going to?

SyniRon commented 2 years ago

I was not in a party. I was in The Peaks and teleported to The Lochs.

MidoriKami commented 2 years ago

Before I push a formal release with these changes please do the following: Install NoTankYou using the ingame plugin installer. Click "Disable" to disable NoTankYou. Open "\AppData\Roaming\XIVLauncher\installedPlugins\NoTankYou\1.0.0.0" Replace NoTankYou.dll with the .dll in this zip folder: NoTankYou.zip Click "Load" to enable the plugin.

Please repeat your test case of "No Party, tp from Peaks to Lochs" And let me know if you have any problems, and if you do please include the stack trace as you did before. I do not need the "LASTEXCEPTION" dump however ^_^, thank you!

MidoriKami commented 2 years ago

An easy way to access your appdata folder is to type in the top bar of windows explorer, %appdata%

SyniRon commented 2 years ago

With new dll, crash persists:

2021-12-07 02:11:04.894 -05:00 [ERR] Exception on ProcessZonePacketDown hook. Header: 58-6C-93-C3-FB-7F-00-00-C0-29-2E-CE-F6-01-00-00-14-00-C4-02-00-00-12-02-0A-09-AF-61-00-00-00-00
System.NullReferenceException: Object reference not set to an instance of an object.
   at NoTankYou.TerritoryManager.UpdateWindowStatus() in D:\Documents\Visual Studio 2022\Dalamud\NoTankYou\NoTankYou\TerritoryManager.cs:line 53
   at NoTankYou.TerritoryManager.OnTerritoryChanged(Object sender, UInt16 e) in D:\Documents\Visual Studio 2022\Dalamud\NoTankYou\NoTankYou\TerritoryManager.cs:line 39
   at Dalamud.Game.ClientState.ClientState.SetupTerritoryTypeDetour(IntPtr manager, UInt16 terriType) in C:\goatsoft\companysecrets\dalamud\Game\ClientState\ClientState.cs:line 148
   at Dalamud.Game.Network.GameNetwork.ProcessZonePacketDownDetour(IntPtr a, UInt32 targetId, IntPtr dataPtr) in C:\goatsoft\companysecrets\dalamud\Game\Network\GameNetwork.cs:line 134
SyniRon commented 2 years ago

Tested in a different situation, teleported from New Gridania to Central Shroud with no party, also triggered crash

Also tried with no plugins other than NoTankYou installed


2021-12-07 02:19:30.078 -05:00 [ERR] Exception on ProcessZonePacketDown hook. Header: 00-00-00-00-00-00-00-00-20-11-74-4E-84-01-00-00-14-00-C4-02-00-00-16-00-04-0B-AF-61-00-00-00-00
System.NullReferenceException: Object reference not set to an instance of an object.
   at NoTankYou.TerritoryManager.UpdateWindowStatus() in D:\Documents\Visual Studio 2022\Dalamud\NoTankYou\NoTankYou\TerritoryManager.cs:line 53
   at NoTankYou.TerritoryManager.OnTerritoryChanged(Object sender, UInt16 e) in D:\Documents\Visual Studio 2022\Dalamud\NoTankYou\NoTankYou\TerritoryManager.cs:line 39
   at Dalamud.Game.ClientState.ClientState.SetupTerritoryTypeDetour(IntPtr manager, UInt16 terriType) in C:\goatsoft\companysecrets\dalamud\Game\ClientState\ClientState.cs:line 148
   at Dalamud.Game.Network.GameNetwork.ProcessZonePacketDownDetour(IntPtr a, UInt32 targetId, IntPtr dataPtr) in C:\goatsoft\companysecrets\dalamud\Game\Network\GameNetwork.cs:line 134
MidoriKami commented 2 years ago

I'm not sure how that is possible if the new dll was loaded correctly. I suspect some of the data is stale. I am making some other robustness changes tonight and will push v1.1.0.0 to Dalamud when I am finished. Once I do give that a try and if you have the same issue post here again.

MidoriKami commented 2 years ago

v1.1.0.0 has been pushed to Dalamud. Give it a shot ^_^ I found one spot that I completely missed for a safety issue. Let me know if this fixes the problem for you, thank you for testing, and sorry if you had to deal with really terrible queues because of this.

SyniRon commented 2 years ago

I tried the new version and it still crashed, but it occurred to me that I had not deleted the config at any point during testing (apologies that should have been the first thing I tried).

Deleting the config and installing the newest version results in teleports without issue.

Apologies if I wasted your time at all, seems the plugin config may have simply been corrupted.

MidoriKami commented 2 years ago

That was what I was going to suggest if you still had issues with the update ^.^

Your null pointer error was either a failure to get the lumina data table which is super unlikely, and after my changes rather impossible, as I make sure to initialize them with blank lists now. The plugin would misbehave, but wouldn't crash.

Or it was the config variable, I think the plugin may have been cached because I split those two variables onto different lines but your crashes showed the same line.

Improving code is never a waste of time! Thanks for your post!