You should see a player dying, lags entire server. I don't think in/out of bank affects the entire server or that would be first i heard of it at least
I'm happy to give you admin access on the server for this, let me meet you
done, your char given gamemaster access to commands, to create items/test etc. @PyrO i appreciate all the help youve given over the months...
i didn't fiddle with any packets, though could have been done in the original odyssey.
What do you mean messagegump? when looting a corpse there is a gump that is sent? when selling items to an NPC vendor?
the common thread ive noticed is this: there is lag when a large number of items are moved to/from a player/mobs backpack.
ah.. haven't changed anything there, though its possible a coder might have fiddled with that who made some core changes in december last year. he did some dodgy edits to the core and spent a lot of time to fix what he did (he also added some cool new content to be fair to him!)
i can just search for messagepump in the code and see what takes place there?
Well if I could actually reproduce it locally, it would be easer to find. The linux vps I have, well runs linux. So it uses mono. Not sure if the issue would be the same there, but maybe worth a shot
im happy to upgrade net on the windows server... but like i said, the lag issue is specific to moving items in/out of backpacks... moving items from one container to another on the ground doesn't do this, which is why i was looking at container/containers scripts
even core item.cs with additem methods in the core files... the fact it affects all server WITHOUT maxing cpu would indicate that it has something to do with the network side of things, packets or whatnot.
Players are even okay putting a prize/pot/reward in cash for someone who can fix this issue...
im personally willing to put 50$ for this (ill ask other players to post here too to see what pot might look like).
Anyone who wants to help and test can contact me, ill arrange for gm access for testing purposes. full code of the project is available above, along with latest save.
I think its safe to say we can manage $100 for this effort... anyone who can help with the issue and get it fixed... its not a lot of money but its for a good cause
we are now at $200 to whoever can fix this issue. Gamemaster login on server and full code of server with latest save available to anyone who wants to help.
Yes, lowering the item per player backpack does help with lag when someone dies or loots, but doesn't help with large amounts of mobs dying or even players selling items to an npc. there is a fundamental issue here somewhere where server lag happens when items are moved in/out of containers in a mobile.
There's an underlying issue somewhere that needs to be identified and fixed.
thats what i am thinking too... but contianer/item etc scripts don't show anything that i can see.
the server we're on has 4 cores, it would have to be a massive check to lag it. also, when item lag happens CPU load does not increase. its something internal, or with packets or netstates whatnot. some kind of bottleneck
after 10 gigs of profiler data... the person noticed this
[12:42 PM]
[12:42 PM]
It shows that a lot of time (almost 10 seconds, similar time to the time spent in Delete things) is spent inside Mobile::InvalidateProperties, as called en masse from BaseContainer::UpdateTotal - the leftmost number is the time spent inside the method during the execution of the game, in milliseconds.(edited)
[12:43 PM]
The time also corresponds roughly to the time spent in Delete and stuff
[12:43 PM]
Therefore, the one and only logical conclusion here is...
[12:43 PM]
...that this part in Container.cs is the culprit:
its in ruins and riches and odyssey, yeah. taken care of. i assume the ruins people will take the issue forward to their build as well. This was a player funded code job - glad our playerbase is amazing.
it invalidates all attributes of the player - there are liekly many custom attributes that run when that is run, which is the cause of the issue here and it not being present in runuo stock. we didnt investigate further (which attributes may be causing this etc)
We found that by commenting that line the weight of containers in mobiles packs didnt update. we came out with an ingenious way to "cache" invalidate properties requests. that way the weight is updated, without overloading the server.
Post automatically merged:
the code itself is runuo2.2 stock, but whatever is processed by the invalidateproperties method is not. this problem doesn't exist in runuo2.2 that we know. also, we can confirm that we didn't change any of the core functions affected by invalidateproperties (confirmed with profiler dump). so its likely in ruins too.
Post automatically merged:
happy to share the fix with you once we've tested
Post automatically merged:
were still looking into this, from latest it seems this is a core issue with runuo 2.2... when too many packets are sent, the server times out and waits for the packets to be sent, the packet buffer is very small in servuo/runuo which seems to be causing the issue. so it may not be anything you did.
the cache fix for invalidateproperties appears to work for now, will know once its been live for a few days.
Damage packets also appear to suffer from same issue (spawn 40 mobs, and [area kill where basecreature them all and you will notice a server timeout). we will work on this too.
We found that by commenting that line the weight of containers in mobiles packs didnt update. we came out with an ingenious way to "cache" invalidate properties requests. that way the weight is updated, without overloading the server.
Post automatically merged:
the code itself is runuo2.2 stock, but whatever is processed by the invalidateproperties method is not. this problem doesn't exist in runuo2.2 that we know. also, we can confirm that we didn't change any of the core functions affected by invalidateproperties (confirmed with profiler dump). so its likely in ruins too.
Post automatically merged:
happy to share the fix with you once we've tested
Post automatically merged:
were still looking into this, from latest it seems this is a core issue with runuo 2.2... when too many packets are sent, the server times out and waits for the packets to be sent, the packet buffer is very small in servuo/runuo which seems to be causing the issue. so it may not be anything you did.
the cache fix for invalidateproperties appears to work for now, will know once its been live for a few days.
Damage packets also appear to suffer from same issue (spawn 40 mobs, and [area kill where basecreature them all and you will notice a server timeout). we will work on this too.