RCLootCouncil

RCLootCouncil

23M Downloads

[BUG] Voting frame broken due to player leaving?

christiansegercrantz opened this issue ยท 3 comments

commented

Describe the bug
I would love to give a

A clear and concise description of what the bug is.

but I won't be able to. What I think happened was that that I was one of our raiders left mid raid and he had been assigned loot, was assigned loot as he was leaving or as he had already left. Anyhow, after that the voting frame didn't show properly stuff. Wrong rolls, icons and order for people and what not. It is essentially impossible to make use of the addon in that state. This also happened the raid after this 4 days later when the raider was not even in the group.

To Reproduce
Honestly no clue. Currently it happens all the time for me and I don't know how to get rid of it.

Expected behavior
The voting frame should work like normally.

Error message
I had probably 500 of these, everytime I swapped item I got a new one. Van try to get more, there's a couple of different ones but this is the one I saw the most

Lua error From bugsack:
983x RCLootCouncil/Modules/votingFrame.lua:1487: attempt to index field '?' (a nil value)
[string "@RCLootCouncil/Modules/votingFrame.lua"]:1487: in function `fnDoCellUpdate'
[string "@RCLootCouncil/Libs/lib-st/Core.lua"]:849: in function `Refresh'
[string "@RCLootCouncil/Modules/votingFrame.lua"]:966: in function `updateFunction'
[string "@Blizzard_SharedXML/SecureScrollTemplates.lua"]:232: in function `FauxScrollFrame_OnVerticalScroll'
[string "@RCLootCouncil/Modules/votingFrame.lua"]:966: in function `SwitchSession'
[string "@RCLootCouncil/Modules/votingFrame.lua"]:1368: in function <RCLootCouncil/Modules/votingFrame.lua:1368>

Locals:
rowFrame = ScrollTable1Row3 {
 PixelSnapDisabled = true
 highlight = Texture {
 }
 cols = <table> {
 }
}
frame = ScrollTable1Row3col2 {
 text = ScrollTable1Row3col2text {
 }
}
data = <table> {
 1 = <table> {
 }
 2 = <table> {
 }
 3 = <table> {
 }
 4 = <table> {
 }
 5 = <table> {
 }
 6 = <table> {
 }
 7 = <table> {
 }
 8 = <table> {
 }
 9 = <table> {
 }
 10 = <table> {
 }
 11 = <table> {
 }
 12 = <table> {
 }
 13 = <table> {
 }
 14 = <table> {
 }
 15 = <table> {
 }
 16 = <table> {
 }
 17 = <table> {
 }
 18 = <table> {
 }
 19 = <table> {
 }
 20 = <table> {
 }
 21 = <table> {
 }
 22 = <table> {
 }
 23 = <table> {
 }
 24 = <table> {
 }
 25 = <table> {
 }
 26 = <table> {
 }
 27 = <table> {
 }
 28 = <table> {
 }
 29 = <table> {
 }
 30 = <table> {
 }
}
cols = <table> {
 1 = <table> {
 }
 2 = <table> {
 }
 3 = <table> {
 }
 4 = <table> {
 }
 5 = <table> {
 }
 6 = <table> {
 }
 7 = <table> {
 }
 8 = <table> {
 }
 9 = <table> {
 }
 10 = <table> {
 }
 11 = <table> {
 }
 12 = <table> {
 }
 13 = <table> {
 }
}
row = 3
realrow = 3
column = 2
fShow = true
table = <table> {
 sorttable = <table> {
 }
 filtered = <table> {
 }
 cols = <table> {
 }
 scrollframe = ScrollTable1ScrollFrame {
 }
 offset = 0
 showing = true
 DefaultEvents = <table> {
 }
 rows = <table> {
 }
 data = <table> {
 }
 fSelect = true
 multiselection = false
 rowHeight = 20
 displayRows = 15
 defaulthighlightblank = <table> {
 }
 defaulthighlight = <table> {
 }
 head = ScrollTable1Head {
 }
 events = <table> {
 }
 frame = ScrollTable1 {
 }
}
name = "Kofotsjonas-Kazzak"
(*temporary) = <table> {
 defaults = <table> {
 }
 modules = <table> {
 }
 debug = false
 classTagNameToID = <table> {
 }
 PREFIXES = <table> {
 }
 db = <table> {
 }
 OPT_MORE_BUTTONS_VALUES = <table> {
 }
 classIDToDisplayName = <table> {
 }
 testMode = false
 nnp = false
 name = "RCLootCouncil"
 C_Container = <table> {
 }
 VER_CHECK_CODES = <table> {
 }
 INVTYPE_Slots = <table> {
 }
 defaultModuleState = false
 handleLoot = true
 Utils = <table> {
 }
 ItemStorage = <table> {
 }
 EJLatestInstanceID = 1273
 TradeUI = <table> {
 }
 Sync = <table> {
 }
 playerClass = "SHAMAN"
 coreEvents = <table> {
 }
 recentReconnectRequest = false
 nonTradeables = <table> {
 }
 BTN_SLOTS = <table> {
 }
 lootGUIDToIgnore = <table> {
 }
 player = <table> {
 }
 masterLooter = <table> {
 }
 hooks = <table> {
 }
 isMasterLooter = true
 classDisplayNameToID = <table> {
 }
 autoGroupLootWarningShown = false
 isInGuildGroup = true
 currentInstanceName = "Nerub-ar Palace-Heroic"
 UI = <table> {
 }
 CATALYST_ITEMS = <table> {
 }
 guildName = "Baboon Platoon"
 guildRank = "Main"
 mldb = <table> {
 }
 baseName = "RCLootCouncil"
 enabled = true
 tooltip = RCLootCouncil_TooltipEventHandler {
 }
 lastEncounterID = 2921
 bossName = "The Silken Court"
 hasReceivedCouncil = true
 playersData = <table> {
 }
 optionsFrame = Frame {
 }
 lootMethod = "personalloot"
 playerName = "Doccool-Kazzak"
 candidatesInGroup = <table> {
 }
 realmName = "Kazzak"
 mlChatCmdHelp = <table> {
 }
 CLASS_TO_ATLAS = <table> {
 }
 isCouncil = true
 customChatCmd = <table> {
 }
 classIDToFileName = <table> {
 }
 enabledState = true
 MIN_LOOT_THRESHOLD = 3
 classTagNameToDisplayName = <table> {
 }
 responses = <table> {
 }
 lootDB = <table> {
 }
 blackListOverride = <table> {
 }
 blacklistedItemClasses = <table> {
 }
 chatCmdHelp = <table> {
 }
 lootSlotInfo = <table> {
 }
 lootOpen = false
 inCombat = false
 defaultModuleLibraries = <table> {
 }
 Log = <table> {
 }
 version = "3.14.1"
 orderedModules = <table> {
 }
 LOGO_LOCATION = "Interface\AddOns\RCLootCouncil\Media\rc_banner"
 Compat = <table> {
 }
 RESPONSE_CODE_GENERATORS = <table> {
 }
 ModuleData = <table> {
 }
 PROFILE_EXPORT_IDENTIFIER = "RCLootCouncilProfile"
}
(*temporary) = nil
(*temporary) = 39
(*temporary) = "Kofotsjonas"
(*temporary) = "Kofotsjonas"
(*temporary) = "Kofotsjonas-Kazzak"
(*temporary) = "attempt to index field '?' (a nil value)"
addon = <table> {
 defaults = <table> {
 }
 modules = <table> {
 }
 debug = false
 classTagNameToID = <table> {
 }
 PREFIXES = <table> {
 }
 db = <table> {

Saved Variables
RCLootCouncil.lua.zip.zip

commented

I'm aware of this issue - you can avoid it by finishing a session before adding new items.

It happens because a player is present when you start a session, but not for the "next" session that you add on top of the first, thus creating issues. It's not an easy thing to fix, so I'd advice you not extend the sessions, i.e. award all items or click "Abort".

This also happened the raid after this 4 days later when the raider was not even in the group.

Not entirely sure about this, your log doesn't show it.

commented

Thanks for the quick answer. This is odd, since we have had the same session throughout the whole raid with people swapping chars without problems. This seems to be triggered by something specific, but I'm not sure. Especially since the name of the previous raider was still showing up in errors days later. I wonder if I didn't ever actually abort the session between the two raid days and that could've caused the problem.

Is there some other data I can provide you that could show you the behaviour? We can go into a legacy raid or the normal raid and see if the problem is still occurring.

Regarding the proposed solution, our use case is mainly that to clear the bosses which are on farm (can be hc+mythic even) and then give out all the loot. Is it so that the add-on is not intended for/does not support this kind of behaviour but is intended to share the loot as soon as it is awarded. (Not that we do not want to award all the loot at the end of the raid, but award as we go and reward items later if say a better items drop. Awarding all the items at the end takes unnecessary time compared to awarding during trash clear and doing minor tweaking at the end of the raid/before prog).

commented

I haven't done a deep dive into it yet, but my initial analysis confirmed it can (but won't always) happen when extending sessions. It depends a lot on what you do. The only unusual thing about your log is the shear amount of errors, but again it depends on usage, and I'm not seeing anything I don't except from this issue.

The error itself is quite generic, and can be triggered by other things, as it's basically just a "I can't display what you want me to" error - but everything points at people leaving between sessions. At this time I can't distinguish between this and other potential issues though.

I imagine you just saw old errors in the bugtracker, as sessions don't persist between relogs or even reloads. If you're in anyway able to reproduce it, without extending sessions, I'd very much like to know.

I didn't intent for it to be used this way when creating it, but since it's possible it should also be supported - you're not the only one doing so, although the majority of people I get in contact with ends up doing it by mistake.