SLOKnightfall / BetterWardrobe

30 stars 14 forks source link

Weird Hang #434

Closed zaphon closed 3 months ago

zaphon commented 3 months ago

So with the launch of Remix last week, things have been going well for me until about a day ago. I have 4 characters now in Remix...

70 Human Monk 70 Zandalari Troll Druid 48 Undead Warlock 60 Vulpera Warrior

Starting yesterday (out of the blue), I started getting a complete lock up of the game on login with the 60 Vulpera Warrior (it was 40 when I logged in, leveled it to 60 last night). I went about singling out addons to track down the offender and it was Better Wardrobe. If I disable it, logs right in, enable it, hangs.

So I went about trying to troubleshoot further. I disabled all addons, and with just Better Wardrobe it logs in just fine. So there's an interaction. I went about disabling addons in a systematic method (I disabled all addons starting with A, B, C, D, etc.).. Unfortunately, no matter what, it would hang. And since it was a hang, each time I would be relaunching the game.

So, than literally by almost accident, I launched wow, disabled the Better Wardrobe addon from loading, logged in, went to the addons option in game, re-enabled Better Wardrobe, and reloaded ui and it worked. But if I disable it, log in, log out, enable it, log in, it will still hang. I even went as far as to try logging into a different character first, thinking maybe that would help, but nope, I have to login to the Vulpera Warrior without Better Wardrobe and enable it via the Addons Menu and reload ui vs logout/login for it to work.

So far, this doesn't seem to happen to ANY of my toons on Retail or Remix, just this single toon in Remix (so far).

I have no idea where to begin to troubleshoot this, but am open to suggestions, as I would love to figure it out.

zaphon commented 3 months ago

Further testing, I added a ton of print statements trying to track down where it's hanging (haven't figured it out yet). But I can reproduce this on 3 different computers (2 PC's and 1 Mac). It's just this character. I tried deleting my Better Wardrobe settings file (there's really nothing in there for this toon), nothing seems to make a difference short of the "log in with Better Wardrobe disabled and than go into the addons section and re-enable/reload ui" which somehow works.

zaphon commented 3 months ago

Well I tracked down the specific function that seems to be hanging it. It's UpdateCollectedAppearances() in Data\DataBase.lua. I've found that if I delay it a bit it doesn't hang (I tried lower times and it would still hang, I had to delay it significantly for it to not hang, 15 seconds worked for me, so it's calling something that just not ready to be called yet (on this specific character, a protection warrior). I even noticed that I get a red pop-up message saying something along the line of "You can't do that yet" right as it hangs which doesn't happen if I delay this..

C_Timer.After(15, function() UpdateCollectedAppearances() end)

SLOKnightfall commented 3 months ago

Wow. Thanks for doing the legwork to find the issue. Much appreciated. I'll try to get a update out later today.

SLOKnightfall commented 3 months ago

Ended up moving UpdateCollectedAppearances to trigger when the player enters world after a smaller delay which appears to not cause the lag. Moving it to here should have all the game data needed to be loadeded

Servonius commented 3 months ago

This is still happening for me after updating to v4.21 in MOP Remix.

  1. updated to v4.21
  2. enabled Better Wardrobe (on char screen)
  3. logged into my 70 MOP Remix char (in Shrine of Seven Stars)
  4. still freezing

The freeze doesn't seem to happen on my 18 MOP Remix char (still running around in Jade Forest)

Edit: Moved my 70 char out of the Capital City and then I only experience a short freeze instead of a freeze + crash

zaphon commented 3 months ago

Edit: Moved my 70 char out of the Capital City and then I only experience a short freeze instead of a freeze + crash

Oooh, I never thought to try that. But that does make the issue more interesting.

I did notice every once in a blue moon, if I let it sit for a minute or two it would sometimes actually break out of the freeze and finish loading. But that was the exception, not the norm.

DJScias commented 3 months ago

Can confirm it's still freezing and sometimes crashing on my lvl 70 Remix chars (not sure about others.)

image

zaphon commented 3 months ago

For what it's worth, again changing the delay in Modules/Core.lua now (as the call was moved to PLAYER_ENTERING_WORLD) to 15 seconds fixes it for me.

    C_Timer.After(15, function() addon.Init:UpdateCollectedAppearances() end)

That's currently

    C_Timer.After(1, function() addon.Init:UpdateCollectedAppearances() end)

It's on line 1,490 of the above mentioned file.

DJScias commented 3 months ago

For what it's worth, again changing the delay in Modules/Core.lua now (as the call was moved to PLAYER_ENTERING_WORLD) to 15 seconds fixes it for me.

    C_Timer.After(15, function() addon.Init:UpdateCollectedAppearances() end)

That's currently

    C_Timer.After(1, function() addon.Init:UpdateCollectedAppearances() end)

It's on line 1,490 of the above mentioned file.

Nice, thank you. Put that in and it seems to indeed stop the super lag/freeze at startup (at least for me).

SLOKnightfall commented 3 months ago

@zaphon I was just going to ask if you could test with the larger timer. I'll get another update out with the change

Servonius commented 3 months ago

also tested it with the 15 sec timer, it seems to fix the freeze

SLOKnightfall commented 3 months ago

Great. New update with the changes should be out shortly.