Fix your fucking server

General discussion pertaining to the Demise shard. Off-topic posts will be moderated.
User avatar
Reetus
Posts: 191

Re: Fix your fucking server

Post 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.
User avatar
Calvin
Posts: 5686
Location: UK

Re: Fix your fucking server

Post 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
User avatar
Reetus
Posts: 191

Re: Fix your fucking server

Post 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
User avatar
Calvin
Posts: 5686
Location: UK

Re: Fix your fucking server

Post 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?
User avatar
Reetus
Posts: 191

Re: Fix your fucking server

Post by Reetus »

It could be... too many Movement Rejected packets in the send queue
User avatar
Calvin
Posts: 5686
Location: UK

Re: Fix your fucking server

Post 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
User avatar
Reetus
Posts: 191

Re: Fix your fucking server

Post 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.
User avatar
Calvin
Posts: 5686
Location: UK

Re: Fix your fucking server

Post 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
User avatar
Reetus
Posts: 191

Re: Fix your fucking server

Post 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.
User avatar
Vander Nars
Posts: 2130

Re: Fix your fucking server

Post 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.
Image
Exillion
Posts: 612

Re: Fix your fucking server

Post 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.
User avatar
Calvin
Posts: 5686
Location: UK

Re: Fix your fucking server

Post 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
User avatar
Calvin
Posts: 5686
Location: UK

Re: Fix your fucking server

Post 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.
Last edited by Calvin on February 13th, 2018, 4:40 pm, edited 2 times in total.
User avatar
subaru
Posts: 167

Re: Fix your fucking server

Post by subaru »

ive crashed a wrx and a jetta
Discord: subaru#6057
Image
User avatar
Vander Nars
Posts: 2130

Re: Fix your fucking server

Post 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.
Image
Post Reply