Closed SafeteeWoW closed 6 years ago
I'm still not certain this is what causes it. It would make sense if it's only that, but there's a few things putting that theory off:
v3 doesn't help us now, and it's too far off anyway to be of any help. Besides, there's really not much data to compress in responses which are (seemingly) the current issue. Combining messages doesn't necessarily help either. Messages can't be more than 255 bytes long (including prefix), any longer than that and AceComm splits them. Currently that means lootAcks and the occasional autopass (some are too long to combine 2 of) are the only candidates for that - and lootAck is only sent once anyway.
There's stuff that's much more relevant to remove. Lines like this really breaks my heart:
"21:12:19 - Comm received:^1^Sresponse^T^N1^N2^N2^SSelkouth-Sargeras^N3^T^Silvl^N947.3125^SspecID^N265^t^t^^ (from:) (Selkouth) (distri:) (RAID)", -- [136]
It only sends ilvl and specID - it actually happens somewhat often, and could easily be included in loot ack. 21 of the ~200 messages contained only this.
As for the SV from Tehrible (the only one that actually shows a DC) his ML didn't have the newest version (lootTable lacks classes and subTypeID/typeID (the release version doesn't filter out those)). Are we certain repeated calls to GetItemClassesAllowedFlag
can't cause dc's?
Also, each an every response received triggers an RCVotingFrame:Update()
which again triggers alot of sorting. That might also have something to do with it.
GetItemClassesAllowedFlag
. This cant be the issue. ML calls it more repeated. Even /rc test 200 does not cause disconnection
Except the item is uncached - the ML's item is cached when he calls it, and even when testing it won't be called before the items are cached. But it's way more likely some of the other things affects it more.
Let me call it with uncached items.
GetItemClassesAllowedFlag
. No caching. https://gist.github.com/SafeteeWoW/e442117c9aa9ab074165d38a4eaad29d
print 0xffffffff for all uncached itemsLarger command helps though, it reduces the fragmentation any way
I presume at this point the amount of messages are the cause of it. I just really don't want to add an extra delay without knowing for sure. I'm debating releasing the current fixes without this to see if it helps, or just release this as a bandaid.
Checkout the latest SV https://media-elerium.cursecdn.com/attachments/220/953/rclootcouncil.txt. This one has 3 seconds after a major burst before the DC happens (entry 664) and 4 seconds later (entry 1064). While it still might just be overflowing at that point, it does seem odd. It also shows off how horribly inefficient the reconnect data is.
This takes forever to transmit this reconnect data. Too much data easily fetchable client side are transmitted.
Got a report that ML can also disconnect
I suggest to release this fix. We should first attempt to make the addon work first, then considering the performance impact of this fix.
Also, can you have a look at #122?
My only concern by releasing multiple, somewhat potential fixes is we won't know which one actually did it.
Then you can delay #124 to the next version. Other changes done are not related.
PRs with new features are obviously unrelated.
https://media-elerium.cursecdn.com/attachments/220/817/rclootcouncil.txt Disconnection happens on entry 309, but the lootTable is received on entry 98. About 200 addon messages are received within 1s.
I highly suspect the disconnection is caused by burst traffic due to the following reasons:
http://wowwiki.wikia.com/wiki/ChatThrottleLib
I suppose receiving message also generates output because WoW client generates ACK for each message? Anyway, it's highly likely that the burst traffic when the lootTable received causes the issue.
Why the problem arises in this version but not the older version?
RCLootCouncil3 will reduce the traffic by:
response
command intomulti_response
command.