View Single Post
03/11/15, 01:21 PM   #31
circonian
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 613
Originally Posted by ZOS_ChipHilseberg View Post
I've been following this thread and trying to get a clear picture of the problem but I have a few questions. What kind of crash are we talking about? Is it an actual client crash (the kind that generates a bug report) or is it a client lockup? Also, am I right in saying that the leading theory is that there are a bunch of spurious inventory updates that are causing "too much" addon processing when you are killed by a guard?
Short Answers:
Originally Posted by ZOS_ChipHilseberg View Post
What kind of crash are we talking about?
I've not experienced it with paying a bounty or dying by a guard, I don't use many addons. But I did experience the horse swapping problem months back & it was a lock-up. I'm betting this is the same problem, it has the same cause stemming from everyone running code on all of the slots that get updated (in which all of them get updated at once) through the EVENT_INVENTORY_SINGLE_SLOT_UPDATE .

Originally Posted by ZOS_ChipHilseberg View Post
Also, am I right in saying that the leading theory is that there are a bunch of spurious inventory updates that are causing "too much" addon processing when you are killed by a guard?
When you pay a bounty (with stolen items on you) it fires a full Upate and updates all inventory slots (including your bank? But why you can't put stolen items in your bank). So yes, unless theres a reason for updating slots other than in your backpack, it is updating to much. Although, I think the main problem is that if your running several addons that run code during the EVENT_INVENTORY_SINGLE_SLOT_UPDATE it just compounds the problem. Every addon ends up running code on every slot at the same time.

More Details:
Some people said they were crashing when they "payed a bounty". I don't know what kind of crash, I've not experienced it. A few months back people had the same problem that I tracked down to swapping your horse to a different horse that has a different carrying capacity because it updates all of the backpack slots. I remembered this happening, which is what made me think to check the slot updates and when you pay a bounty with stolen items and it is updating even more than your backpack, so the problem is probably worse for them. With the horse problem I think I ended up recommending they put a scene check in their addons to check if we the user was at the stables & prevent their code from running at that time.

If you have stolen items on you when you pay a bounty a full update gets called and it updates all of the inventory slots (not just the backpack?? Why you cant put stolen items in the bank, but it updates those too). If an addon is running a lot of code on items during the EVENT_INVENTORY_SINGLE_SLOT_UPDATE, their code gets run on every slot that gets updated. If several addons are doing this it can cause a huge lag spike and a lock-up.

It happens when you pay a bounty WITH stolen items on you, for sure. It probably also happens when you are killed by a guard too (if you have stolen items on you), I didnt think to check that one. But I bet it does because its the updates that are fired when the game removes stolen items from your inventory, which would also happen when a guard kills you.

EDIT:
Ok since everyone else is throwing other bugs into the thread...and since no one else has had an answer for me.
Chip is there any chance I could get some feedback on this:
IsPOIPublicDungeon(...): Is It a Bug?
The rest of the IsPOIxxxx functions do what their names suggest, but either this one is bugged or it just does not do what its name suggests...I'de really like to use it in my WaypointIt addon.

Last edited by circonian : 03/11/15 at 01:32 PM.
  Reply With Quote