Page 4 of 8

Re: Fix your fucking server

Posted: February 13th, 2018, 10:54 am
by Reetus
No, I'm saying the same thing has happened with two different providers, where I'm located is irrelevant, the issue didn't exist for anyone this time last year.

You won't see the issue bank sitting at Luna bank, it's only at pvp fights/harrowers/etc when there is a tonne happening.

You can DC on your pvper and still have 3 banksitters at Luna unaffected, hence why I think my hypothesis is accurate.

PS. I don't really care at all, I'm on hiatus till it's fixed.

Re: Fix your fucking server

Posted: February 13th, 2018, 10:56 am
by Calvin
just added this as an edit, but maybe your script is too fast for your ping, and you are spamming the server with commands before the previous ones have gone through, and it's disconnecting you because that code says d/c if a backlog of commands

Re: Fix your fucking server

Posted: February 13th, 2018, 11:04 am
by Reetus
It's the send queue that disconnects you, not the receive queue, I believe RunUO just throttles the packets if you send them too fast (ie, it don't respond any faster than it normally would).

I could be wrong on that, but there doesn't appear to be anything in the code about disconnecting when sending too fast...

https://github.com/runuo/runuo/blob/mas ... agePump.cs

Re: Fix your fucking server

Posted: February 13th, 2018, 11:06 am
by Calvin
if you run into a house that is private, it will jump you off the doorstep, and if you keep doing it, it will dc you. is that the same thing?

Re: Fix your fucking server

Posted: February 13th, 2018, 11:08 am
by Reetus
It could be... too many Movement Rejected packets in the send queue

Re: Fix your fucking server

Posted: February 13th, 2018, 11:09 am
by Calvin
look up this command in C

CapacityExceededException

i dont think it's what you think it is... im not sure though

i think it's just catching anomalies, rather than being a functional piece of code. like, i think it's just to stop fatal crashes, runtime exceptions, etc. but if you're at the point where that is gonna happen, then it disconnecting you instead of crashing isn't really the problem.

i dont 100% know at all, but i know enough to know using non-standard clients can cause a lot of problems.

this is why professionals make buttons for you to click lol. like you've literally just explained why we invented GUIs

Re: Fix your fucking server

Posted: February 13th, 2018, 11:20 am
by Reetus
https://github.com/runuo/runuo/blob/5e7 ... ue.cs#L191

Code: Select all

		public Gram Enqueue( byte[] buffer, int offset, int length ) {
...
			int existingBytes = ( _pending.Count * m_CoalesceBufferSize ) + ( _buffered == null ? 0 : _buffered.Length );

			if ( ( existingBytes + length ) > PendingCap ) {
				throw new CapacityExceededException();
			}
It does mean what I think it means, when the packet is added to the send queue, it compares the current send queue length + the size of the new packet, and if it's greater than a predefined value, it will throw the exception, which will trigger that code I pasted before.

I believe there was a bug introduced with this around the months I said, I could be wrong, but from what I've experienced, my theory is plausible.

Re: Fix your fucking server

Posted: February 13th, 2018, 11:54 am
by Calvin
i asked a friend who's actually a C programmer (im a scripter not a programmer)

"EradiusLore: what am i looking at exactly? the code snippet
Cal: pretty much
Cal: he reckons that code is disconnecting him
Cal: and i reckon it's not, but if it is, it's because they have modded clients which are too fast for the server
Cal: i think it's just a spam protection or invalid data protection thing
Cal: rather than an actual functional piece of code
EradiusLore: from what i can tell looking at the code its just a check to make sure there are not more bytes lefts than were expeted in the buffer
EradiusLore: *left
EradiusLore: *expected
Cal: yea
Cal: why would that happen do you think?
EradiusLore: i mean maybe somewhere earlier in the code its adding more bytes into the buffer. but that is catching the error. not causing it"

+
"two possibilities with an error like that. a) the buffer is being added to after the expected count is set. or the expected count is not matching the buffer. sounds the same but one is server side the other is client"

++
"the other possibility is _buffered and/or _pending have not been initialised for the existingBytes line or have otherwise been set to null. which would throw a null referance error. which would crash the game. but thts the kind of thing thats easily noticable by the person initially writing the code"
^your guess is as good as mine on that one lol

honestly tho, EOS is a good coder, she probably knows way more about it than our speculations

we dont really use buffers in scripting, which is what i was sayin to you about that code snippet, it's programming, it's not scripting, i dont think it does what you think it does.. nothing's straight forward in programming lol

but everything does have to match everything, or you will get caught by an error catcher

Re: Fix your fucking server

Posted: February 13th, 2018, 12:49 pm
by Reetus
It is spam protection, the server spamming the client, not the client spamming the server, it''s not invalid data protection, the server trusts what it sends, your client crashes when you receive malformed data (typically), not disconnect you.

The theories your C programmer are coming up with aren't relevant, it would happen everytime / to everyone randomly.

The code does exactly what I say it does, it's there for a purpose, and Demise has had a historical event when it happened: when MB was purposely buying items that dropped at his feet that caused people logging in/running in to Luna to get disconnected, in the Xavier days.

I can artificially trigger it locally, spam the server with resync packets, with causes the server to resend all items on screen etc, that'll fill the send queue quickly, https://www.youtube.com/watch?v=zON1aHGDMfM

The symptom people are having is being disconnected in high traffic areas, pvp, harrowers, etc, a change in that code that lowered the maximum size of the send queue **would** cause that problem, I'm not saying it's 100% caused by that, but the symptoms match my hypothesis, you're not a C# programmer and haven't read the code, so you can't convince me my hypothesis is invalid, EoS can, with a simple statement like 'We haven't changed that code in the last year', simple.

Re: Fix your fucking server

Posted: February 13th, 2018, 1:40 pm
by Vander Nars
Calvin why do u assume scripts started crashing us after the server move but didnt before the move? That logic is honestly retarded, u act like just cause u have no issues everyone else is lying or some shit.

Re: Fix your fucking server

Posted: February 13th, 2018, 1:56 pm
by Exillion
I doubt it has anything to do with scripts when i crashed every 15 seconds at h town just standing near where bosses spawned with no macros running. I still dc like every 30 seconds when there's like more then 10 people fighting. I doubt it is my connection since i have 100 mbps and my other clients that are open during the d/c stay connected to the server when they are away from all the action.

Re: Fix your fucking server

Posted: February 13th, 2018, 4:13 pm
by Calvin
Vander Nars wrote:Calvin why do u assume scripts started crashing us after the server move but didnt before the move? That logic is honestly retarded, u act like just cause u have no issues everyone else is lying or some shit.
im not saying you're lying, im saying if im not getting crashes then it doesn't happen on the vanilla build

Re: Fix your fucking server

Posted: February 13th, 2018, 4:14 pm
by Calvin
Exillion wrote:I doubt it has anything to do with scripts when i crashed every 15 seconds at h town just standing near where bosses spawned with no macros running. I still dc like every 30 seconds when there's like more then 10 people fighting. I doubt it is my connection since i have 100 mbps and my other clients that are open during the d/c stay connected to the server when they are away from all the action.
yeah but this is what i am saying, i wasn't. i was at that same event, in the same mass of people, not crashing.

barely even lagging most of the time, the text spam was insane until i disabled it


from my experience the vanilla build works fine, and i think if you are having problems it's because you have fucked with your client. stop blaming the server.

im not even complaining about you using the mods, i just think it's a bit cheeky if this is why it's crashing and you're blaming the server

as i said before, unless the mods are officially supported and recommended, you cant blame the admins at all.

it's not uncrashable like, but it's certainly not a common, every 15 minutes type problem. usually from multi-tasking too much if it happens. but that's my pc, that's not their fault.

and it's your server too you bellend ;)

we all play our roles, but the players are as much a part of the server as the GMs.

Re: Fix your fucking server

Posted: February 13th, 2018, 4:40 pm
by subaru
ive crashed a wrx and a jetta

Re: Fix your fucking server

Posted: February 13th, 2018, 7:13 pm
by Vander Nars
How fucking hard is it for u to understand calvin that we had players in kvg test it with unmodded clients and still get lag n crashed. That theory has been busted already so stop trying to use it as an excuse for staff to not fix the fucking server.