Exlist

Exlist

50.6k Downloads

Wow hangs on login in versions newer than 1.8.1

Closed this issue ยท 5 comments

commented

Versions newer than 1.8.1 contain what appears to be an infinite loop in the professions module that cause WoW to literally hang at login until the script times out.

2x Exlist/Modules/Professions.lua:498: script ran too long
[string "@Exlist/Modules/Professions.lua"]:518: in function <Exlist/Modules/Professions.lua:506>
[string "@Exlist/Modules/Professions.lua"]:608: in function <Exlist/Modules/Professions.lua:596>
[string "=[C]"]: in function `xpcall'
[string "@Exlist/Exlist.lua"]:1562: in function `OnEvent'
[string "@Exlist/Exlist.lua"]:1586: in function `SendFakeEvent'
[string "@Exlist/Exlist.lua"]:1451: in function <Exlist/Exlist.lua:1449>
[string "@Exlist/Exlist.lua"]:1537: in function `OnEvent'
[string "@Exlist/Exlist.lua"]:1586: in function `SendFakeEvent'
[string "@Exlist/Exlist.lua"]:1546: in function <Exlist/Exlist.lua:1545>

Locals:
profId = 6
profName = "Alchemy"
icon = 4620669
currentSkill = 57
maxSkill = 100
_ = 1
_ = 178
skillId = 171
data = <table> {
 maxSkill = 100
 name = "Alchemy"
 skill = 57
 icon = 4620669
 weeklies = <table> {
 }
}
(for state) = <table> {
 1 = <table> {
 }
 2 = <table> {
 }
 3 = <table> {
 }
 4 = <table> {
 }
 5 = <table> {
 }
}
(for control) = 1
_ = 1
weekly = <table> {
 type = "darkmoon"
 points = 3
 questId = 29506
 name = "Darkmoon Faire"
}
professionWeeklies = <table> {
 773 = <table> {
 }
 171 = <table> {
 }
 164 = <table> {
 }
 202 = <table> {
 }
 165 = <table> {
 }
 393 = <table> {
 }
 186 = <table> {
 }
 182 = <table> {
 }
 333 = <table> {
 }
 197 = <table> {
 }
 755 = <table> {
 }
}
WEEKLY_TYPE = <table> {
 DARKMOON = "darkmoon"
 ITEM = "item"
 QUEST = "quest"
}
2x Exlist/Exlist.lua:1563: script ran too long
[string "@Exlist/Exlist.lua"]:1563: in function `OnEvent'
[string "@Exlist/Exlist.lua"]:1586: in function `SendFakeEvent'
[string "@Exlist/Exlist.lua"]:1451: in function <Exlist/Exlist.lua:1449>
[string "@Exlist/Exlist.lua"]:1537: in function `OnEvent'
[string "@Exlist/Exlist.lua"]:1586: in function `SendFakeEvent'
[string "@Exlist/Exlist.lua"]:1546: in function <Exlist/Exlist.lua:1545>

Locals:
self = nil
event = "PLAYER_ENTERING_WORLD"
(for state) = <table> {
 1 = <table> {
 }
 2 = <table> {
 }
 3 = <table> {
 }
 4 = <table> {
 }
 5 = <table> {
 }
 6 = <table> {
 }
 7 = <table> {
 }
 8 = <table> {
 }
}
(for control) = 8
i = 8
data = <table> {
 key = "professions-df"
 name = "Professions"
}
started = 1353678271.001000
(*temporary) = false
(*temporary) = nil
(*temporary) = false
(*temporary) = <table> {
}
(*temporary) = "script ran too long"
db = <table> {
 global = <table> {
 }
 Draenor = <table> {
 }
}
config_db = <table> {
 settings = <table> {
 }
 accountSync = <table> {
 }
 resetTime = 1725422399
 resetDailyTime = 1725335999
}
Exlist = <table> {
 Expansions = <table> {
 }
 Strings = <table> {
 }
 OKMark = "Addons/Exlist/Media/Icons/ok-icon"
 tooltipData = <table> {
 }
 ConfigDB = <table> {
 }
 DEFAULT_BACKDROP = <table> {
 }
 accountSync = <table> {
 }
 Fonts = <table> {
 }
 Colors = <table> {
 }
 iconPaths = <table> {
 }
 ShortenedMPlus = <table> {
 }
 timers = <table> {
 }
 DB = <table> {
 }
 activeTooltips = <table> {
 }
 constants = <table> {
 }
 debugMode = false
 L = <table> {
 }
 debugString = "|cffc73000[Exlist Debug]|r"
 QuestTitleFromID = <table> {
 }
 ModuleData = <table> {
 }
 CancelMark = "Addons/Exlist/Media/Icons/cancel-icon"
}
C_Timer = <table> {
}
delay = false
running = true
delayedEvents = <table> {
 UPDATE_PENDING_MAIL = 1
 MYTHIC_PLUS_CURRENT_AFFIX_UPDATE = 1
 BAG_UPDATE = 1
 EJ_DIFFICULTY_UPDATE = 1
 WEEKLY_REWARDS_UPDATE = 1
 UPDATE_INSTANCE_INFO = 1
 PLAYER_ENTERING_WORLD = 1
 PLAYER_TALENT_UPDATE = 1
 CURRENCY_DISPLAY_UPDATE = 1
 CHALLENGE_MODE_MAPS_UPDATE = 1
 TIME_PLAYED_MSG = 1
 UPDATE_FACTION = 1
}
settings = <table> {
 allowedModules = <table> {
 }
 worldQuests = <table> {
 }
 extraInfoToggles = <table> {
 }
 tooltipScale = 1
 shortenInfo = false
 iconAlpha = 1
 reorder = true
 showQuestsInExtra = false
 announceReset = false
 allowedCharacters = <table> {
 }
 wqRules = <table> {
 }
 iconScale = 0.800000
 minLevelToTrack = 60
 showTotalsTooltip = true
 showIcon = true
 backdrop = <table> {
 }
 showExtraInfoTooltip = true
 minimapTable = <table> {
 }
 worldbosses = <table> {
 }
 showMinimapIcon = false
 orderByIlvl = false
 tooltipHeight = 600
 horizontalMode = true
 reputation = <table> {
 }
 unsortedFolder = <table> {
 }
 currencies = <table> {
 }
 azeriteWeekly = true
 characterOrder = <table> {
 }
 lockIcon = false
 Font = "PT_Sans_Narrow"
 showCurrentRealm = false
 fonts = <table> {
 }
 quests = <table> {
 }
 delay = 0.200000
 hideEmptyCurrency = false
}

Tested with all other addons disabled and it still happens.

commented

Notes:

  • Characters below level 70 do not exhibit this problem
  • Disabling the Professions module also fixes the issue
commented

Hey @kayti-wow,
Thanks for the report. Will be pushing fix for this relatively shortly.

commented

Looks like it's a missing increment of i in this function:

local function isDFup()
   local i = 1
   local date = C_DateAndTime.GetCurrentCalendarTime();
   repeat
      local holidayInfo = C_Calendar.GetHolidayInfo(0, date.monthDay, i)
      if (holidayInfo and holidayInfo.texture == 235448) then
         return true
      end
   until holidayInfo == nil

   return false
end
commented

This should fix it:

local function isDFup()
   local i = 1
   local date = C_DateAndTime.GetCurrentCalendarTime();
   repeat
      local holidayInfo = C_Calendar.GetHolidayInfo(0, date.monthDay, i)
      if (holidayInfo and holidayInfo.texture == 235448) then
         return true
      end
      i = i + 1
   until holidayInfo == nil

   return false
end
commented

@kayti-wow, thanks, but I already pushed temp fix. GetHolidayInfo did not work the way I thought it does, so will need to rework whole Darkmoon Faire check anyway. And yeah had forgot to to iterrate