Shadow & Light (ElvUI Plugin)

Shadow & Light (ElvUI Plugin)

14M Downloads

Lua error in armory

brett1337 opened this issue ยท 4 comments

commented

Description

Shadow & Light Version
bc5001b

ElvUI Version
13.87

Steps to Reproduce
unknown only happened once

Error Log
1x ElvUI/Core/General/ItemLevel.lua:134: script ran too long
[ElvUI/Core/General/ItemLevel.lua]:134: in function <ElvUI/Core/General/ItemLevel.lua:110>
[tail call]: ?
[ElvUI/Core/Modules/Misc/InfoItemLevel.lua]:323: in function <...aceElvUI/Core/Modules/Misc/InfoItemLevel.lua:308>
[tail call]: ?
[C]: in function 'UpdatePageInfo'
[ElvUI_SLE/modules/armory/armory.lua]:497: in function <ElvUI_SLE/modules/armory/armory.lua:493>
[C]: in function '?'
[Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua]:109: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[C]: ?
[Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua]:19: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[Ace3/CallbackHandler-1.0-8/CallbackHandler-1.0.lua]:54: in function 'Fire'
[Ace3/AceEvent-3.0-4/AceEvent-3.0.lua]:120: in function <Ace3/AceEvent-3.0/AceEvent-3.0.lua:119>

Locals:
self =

{
mylevel = 80
Bags =
{
}
privateVars =
{
}
modules =
{
}
myspecRole = "DAMAGER"
PriestColors =
{
}
db =
{
}
Layout =
{
}
Distributor =
{
}
MountText =
{
}
INCOMPATIBLE_ADDONS =
{
}
TimeIndicatorColors =
{
}
WorldMap =
{
}
TimeColors =
{
}
InversePoints =
{
}
ShortValueDec = "%.1f"
valueColorUpdateFuncs =
{
}
Classic = false
myrole = "DAMAGER"
ClassInfoByFile =
{
}
UFParent = ElvUFParent {
}
wowtoc = 110100
InfoColor2 = "|cff9b9b9b"
myname = "Yaxleydh"
ActionBars =
{
}
myfaction = "Alliance"
twoPixelsPlease = false
ConfigModeLayouts =
{
}
DataTexts =
{
}
ClassName =
{
}
CreatureTypes =
{
}
Auras =
{
}
ClassicAnnivHC = false
ReverseTimer =
{
}
TagFunctions =
{
}
myClassID = 12
UnlocalizedClasses =
{
}
MinimapSize = 220
hooks =
{
}
SpecName =
{
}
GemTypeInfo =
{
}
StyleFilterDefaults =
{
}
physicalWidth = 1920
mygender = 2
versionString = "13.87"
DataBars =
{
}
InfoColor = "|cff1784d1"
AFK =
{
}
CreatedMovers =
{
}
myLocalizedFaction = "Alliance"
myrace = "NightElf"
StaticPopup_DisplayedFrames =
{
}
VehicleLocks =
{
}
myLocalizedRace = "Night Elf"
myclass = "DEMONHUNTER"
wowdate = "Mar 20 2025"
Masque =
{
}
PopupDialogs =
{
}
Chat =
{
}
myrealm = "Stormrage"
LayoutMoverPositions =
{
}
global =
{
}
ClassicAnniv = false
Misc =
{
}
LibsMinor =
{
}
UnitFrames =
{
}
uiscale = 0.711110
resolution = "1920x1080"
TBC = false
AnimElastic =
{
}
QualityColors =
{
}
media =
{
}
data =
{
}
Options =
{
}
ClassicHC = false
HiddenFrame = Frame {
}
Media =
{
}
name = "ElvUI"
TimeFormats =
{
}
ShortPrefixStyles =
{
}
versionDev = false
Blizzard =
{
}
wowbuild = 59888
RegisteredInitialModules =
{
}
ClassInfoByID =
{
}
TotemTracker =
{
}
RegisteredCooldowns =
{
}
SpecInfoBySpecID =
{
}
ObjectEventTable =
{
}
title = "|cff1784d1ElvUI|r"
EditorMode =
{
}
MapInfo =
{
}
frames =
{
}
physicalHeight = 1080
NewSignNoWhatsNew = "|TInterface\OptionsFrame\UI-OptionsFrame-NewFeatureIcon:14:14:0:0|t"
ClassicSOD = false
Retail = true
MountIDs =
{
}
AnimShake =
{
}
DisabledMovers =
{
}
MediaUpdated = true
myspecName = "Havoc"
myspecIcon = 1247264
myspec = 1
initialized = true
mult = 1.000002
myLocalizedClass = "Demon Hunter"
charSettings =
{
}
myguid = "Player-60-0CA0FD9A"
Border = 1
loadedtime = 435009.176000
Spacing = 0
PixelMode = true
serverID = 60
PrivateAuras =
{
}
EasyMenu = ElvUI_EasyMenu {
}
SpellBookTooltip = ElvUI_SpellBookTooltip {
}
private =
{
}
baseName = "ElvUI"
Filters =
{
}
GetFormattedTextStyles =
{
}
TagInfo =
{
}
FrameLocks =
{
}
DebugTools =
{
}
ConfigTooltip = ElvUI_ConfigTooltip {
}
Skins =
{
}
SpecInfoBySpecClass =
{
}
statusBars =
{
}
myspecID = 577
texts =
{
}
TutorialList =
{
}
InverseAnchors =
{
}
mynameRealm = "Yaxleydh - Stormrage"
ModuleCopy =
{
}
defaultModuleState = true
SpecByClass =
{
}
Minimap =
{
}
ScanTooltip = ElvUI_ScanTooltip {
}
LSM =
{
}
TexCoords =
{
}
locale = "enUS"
CreditsList =
{
}
PluginInstaller =
{
}
myRaceID = 4
ConfigModeLocalizedStrings =
{
}
TexturePath = "Interface\AddOns\ElvUI\Media\Textures"
TimeThreshold = 3
orderedModules =
{
}
DF =
{
}
ClearTexture = 0
ObjectEventFrame = Frame {
}
Tooltip =
{
}
perfect = 0.711111
oUF =
{
}
unitFrameElements = <

commented

okay makes sense. by the way this reminds me of this reproducable lua error I've really been meaning to check on. I get this every single time I change specs on any character. seems specific enough to track down. Hope this helps, thanks!

163x ElvUI_SLE/modules/loot.lua:299: attempt to index field 'channels' (a nil value)
[ElvUI_SLE/modules/loot.lua]:299: in function 'filterFunc'
[ElvUI/Core/Modules/Chat/Chat.lua]:2058: in function <ElvUI/Core/Modules/Chat/Chat.lua:2028>
[tail call]: ?
[ElvUI/Core/Modules/Chat/Chat.lua]:2352: in function <ElvUI/Core/Modules/Chat/Chat.lua:2348>
[tail call]: ?
[ElvUI/Core/Modules/Chat/Chat.lua]:2356: in function <ElvUI/Core/Modules/Chat/Chat.lua:2355>
[tail call]: ?
[ElvUI/Core/Modules/Chat/Chat.lua]:2361: in function <ElvUI/Core/Modules/Chat/Chat.lua:2360>

Locals:
self = ChatFrame1 {
shouldFadeAfterInactivity = true
font = "Interface\AddOns\ElvUI\Core\Media\Fonts\PTSansNarrow.ttf"
textIsCopyable = false
hasActiveChanges = false
isScrollingMessageFrame = true
name = "General"
isUninteractable = false
systemPositionDirty = false
copyButton = ElvUI_CopyChatButton1 {
}
buttonFrame = ChatFrame1ButtonFrame {
}
snappedFrames =

{
}
alternativeDefaultLanguage = "Common"
hasOwnFontObject = true
scriptsSet = true
oldAlpha = 0.156863
channelList =
{
}
FontStringContainer = Frame {
}
messageTypeList =
{
}
fontObject = table: 000001A65C886B30 {
}
systemNameString = "Chat Frame"
EditModeResizeButton = Button {
}
tab = ChatFrame1Tab {
}
Background = ChatFrame1Background {
}
settingsDialogAnchor =
{
}
clickAnywhereButton = ChatFrame1ClickAnywhereButton {
}
scrollOffset = 0
isLayoutDirty = false
oldestFadingLineTimestamp = Infinite
systemInfo =
{
}
fadeDurationSecs = 3
downKeys =
{
}
buttonSide = "left"
ResizeButton = ChatFrame1ResizeButton {
}
overrideFadeTimestamp = 295460.221000
settingDisplayInfoMap =
{
}
fontStringPool =
{
}
dirtySettings =
{
}
fontStyle = "OUTLINE"
isInitialized = 1
allowScroll = true
savedSystemInfo =
{
}
timeVisibleSecs = 100
mouseOutTime = 1.000000
styled = true
isDisplayDirty = false
fontSize = 14
mouseInTime = 0
zoneChannelList =
{
}
insertMode = 2
Selection = Frame {
}
system = 8
isDocked = 1
onDisplayRefreshedCallbacks =
{
}
visibleLines =
{
}
ScrollTimer =
{
}
historyBuffer =
{
}
defaultLanguage = "Common"
editBox = ChatFrame1EditBox {
}
ScrollToBottomButton = Button {
}
ScrollBar = Frame {
}
settingMap =
{
}
isStaticDocked = true
isLocked = true
allowAtGlues = true
}
event = "CHAT_MSG_CHANNEL"
message = "[WTS] MYTHIC [+0] [+2] [+3] [+4] [+5] [+6] [+7] [+8] [+9] [+10] timed guarantee/ armor stack (leather) -(mail)-(cloth)-(plate) /( specifc key )/ discount on multi runs / special offer for <ksm/ksh> delves 5 to 11 (only accept gold) dm me for more info"
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index field 'channels' (a nil value)"
LT =
{
db =
{
}
baseName = "ElvUI_SLE"
modules =
{
}
defaultModuleLibraries =
{
}
LootTemp =
{
}
hooks =
{
}
defaultModuleState = true
MaxPlayerLevel = 80
name = "ElvUI_SLE_Loot"
orderedModules =
{
}
IconChannels =
{
}
Numbers =
{
}
LootItems = 0
LootEvents =
{
}
Loot =
{
}
enabledState = true
moduleName = "Loot"
}

commented

nothing to really go on as that can happen for various reasons as that just means ur pc took to long to run a script which could be various reasons including ur pc just took a shit to process stuff and wow cancels the function and u get the error or another addon was handing and caused a hiccup but only happening once and no reproduceable steps, not really much can be looked at.

commented

I have a ton of these as well. A lot happen in combat, likely due to most of the registered events not having an early return.
The only early return is for CRITERIA_UPDATE while I would assume that combat related events such as UPDATE_INVENTORY_DURABILITY should not cause an update in combat if the frame is hidden.

I would change line 494 in armory.lua:
if event == 'CRITERIA_UPDATE' and (InCombatLockdown() or not _G.CharacterFrame:IsShown()) then return end
to a global opt-out in combat when the frame is not shown:
if InCombatLockdown() and not _G.CharacterFrame:IsShown() then return end

Or at least add UPDATE_INVENTORY_DURABILITY to it:
if (event == 'CRITERIA_UPDATE' or event == 'UPDATE_INVENTORY_DURABILITY') and (InCombatLockdown() or not _G.CharacterFrame:IsShown()) then return end

commented

Related, but ElvUI core: Not sure why the profiler would run and call CollectEssenceInfo in this case, but that sounds unnecessary in combat situations. Especially on TWW gear.

3x ...eElvUI_Libraries/Core/oUF/simpy/profiler.lua:116: script ran too long
[ElvUI_Libraries/Core/oUF/simpy/profiler.lua]:116: in function 'CollectEssenceInfo'
[ElvUI/Core/General/ItemLevel.lua]:135: in function <ElvUI/Core/General/ItemLevel.lua:110>
[tail call]: ?
[ElvUI/Core/Modules/Misc/InfoItemLevel.lua]:323: in function <...aceElvUI/Core/Modules/Misc/InfoItemLevel.lua:308>
[tail call]: ?
[C]: in function 'UpdatePageInfo'
[ElvUI_SLE/modules/armory/armory.lua]:497: in function <ElvUI_SLE/modules/armory/armory.lua:493>
[C]: in function '?'
[!!AddonProfiler/libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua]:109: in function <...ler/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:109>
[C]: ?
[!!AddonProfiler/libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua]:19: in function <...ler/libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:15>
[!!AddonProfiler/libs/CallbackHandler-1.0-8/CallbackHandler-1.0.lua]:54: in function 'Fire'
[ElvUI_Libraries/Core/Ace3/AceEvent-3.0-4/AceEvent-3.0.lua]:120: in function <...UI_Libraries/Core/Ace3/AceEvent-3.0/AceEvent-3.0.lua:119>```