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...
 
Well from what I got,

Dragging -> lags / raises ping
Killing -> lags / raises ping
Teleporting -> lags / raises ping
Having names popup the first time -> lags / raises ping

from what I gathered, it could to be the messagepump, unless you fiddled with packets.
Seems like it cant get it out quick enough? Not sure
 
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
 
are you saying this might not be an issue with the code at all, but rather with the windows NT server?

many players have tested offline as well and some have found lag, others not all on windows machines.

.net framework on the server is 4.03, there is a .net 4.8 out now... could it be just a matter of updating that?
 
Cant deny, nor confirm. What I ment is that linux and windows are way different, and that mono works way different than .net

Therefor I will test it, not sure if there will be the same result or nothing?
 
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.
 
Last edited:
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 :D
 
Can this be remedied by lowering max item count for the player? Just as a test, I'm not suggesting this as the solution, but to rule things out
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.
 
Is there some kind of item scan happening?

Perhaps something in Item that is looking at each item for a variable? That seems extreme, but this is an odd problem.
 
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

I don't know honestly, else id fix it.
 
This issue has been identified and fixed, thanks to the coder that helped us and did a full 10gig debug dump to find the issue.
 
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:

[12:43 PM]


removing this greyed lines fixed the issue.
 
Just be aware that it may have other "results" as well.

Since it may not update properly, on like your backpack on your paperdoll. Just from reading that there.

Anyway besides that good that it is solved for Adventure's and whoever found the issue
 
Heh, yeah, I believe you've basically removed the GUI update when items are added/removed from bags.

But, that may be redundant from the base, perhaps it's an Odyssey legacy thing.
 
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. :)
 
Last edited:
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. :)
Hello,
Is there any progress on this topic?
 
Back