ID:1078330
 
I'm having a pretty strange issue that up until recently I thought was a BYOND software problem, but now I believe it must be something to do with my game because if this were a BYOND issue there would be a lot of complaining around here over it.

Anyway. The issue is that various players at various times receive connection failed on a pretty regular basis. I think it may only occur when they're idle, but the player can be unaffected some days and affected on others.

It's definitely not related to their internet, and I've had it happen as well so in my experience there is usually no lag for anyone during it either. Everything just suddenly becomes unresponsive for me, and then after a while I either have to X the game out a re-open it because reconnecting is unresponsive, or I either get connection failed/timed out or super rarely the game suddenly catches up and becomes responsive again.

I've tried and tried to figure out what could be the cause of this, but I just don't know. The only lead I have is that, I think, emphasis on think that clearing the cache in pager can stop this problem temporarily.

I'm not sure what that would mean though, I think I read somewhere that corrupted files can get into the cache and cause issues, but no idea how anything corrupt would be getting generated.

So, I've come here hoping someone has come clue about how to fix this? I chose Developer Help rather than BYOND help, since it's likely an issue with my games source somehow.

Is this all on the same host, or on multiple different machines in different places?
This is all on a Shell server running linux Debian 32-bit, meant to mention that but I forgot. Up until today, both it and some of the players and I had the most up to date BYOND running as well. 498 is public now, so just one update behind.
Is it just on that server, that you're seeing the problem?
Well, I am unable to host on my laptop, and it's the only server I have so I'm not sure if it would do it on any others hosts. I've had a server just like this one with the same host in the past, and it had no problem on a different game though.
I can set you up a test account on byondpanel.com if you would like to test hosting on that server although it might be laggy you can still test the connection failed issue.

Also have you put the -logself tag on the DreamDaemon command? This will create a .log file, the file might have some interesting errors or perhaps a solution to your problem :)
I wouldn't mind trying that, but it could be difficult since it may take a day or two for someone to encounter the issue. I hate how difficult it is to reliably reproduce this.

I keep that enabled, and I've watched over it for the last month or so, knocking out almost any and all runtimes I could find. This issue seems to still occur, even with there being little more than a minor runtime or two usually related to an icon-state update that I haven't gotten around to fixing.

Edit: I just re-read through the log, and there were two strange occurrences. I doubt they're related since they're recent and this has been around for weeks but worth a try.

This one is from a couple days ago, and occurred for a player who is experiencing the connection problem today.

BUG: Failed to decode message 54,5
BUG: Network connection for Reminiscent88 shutting down due to read error. (2,1)

Then there is this one from today.

BUG: Sequence number C13C expected but 2 received
Update DreamDaemon perhaps?

You can run DreamDaemon -version to see what you are currently running.

I have never seen this error before so I can't help much further sorry :( if you are using the latest version of BYOND I believe they have a new banning system perhaps this is a bug from that?
Well, like I said before it's not far behind so I don't think that's related to the problem or those bugs. The server is running the 497 that was beta, so am I and some of the players too.

I plan to update it soon, I just doubt it'll help with anything since 498 didn't change much or mention anything with this to my knowledge.

What are some things that might alter, or change the cache that the pager clears? Maybe if the cache fixes it, something in it is the problem; if so it must be something I've done that impacts the cache. That could help narrow things down, if this is even possible.
I would update to the latest stable version to make sure anyway running a beta is not a good idea...
I'll try that later tonight, but I just remembered that I rarely ever reboot or shut things down. I remember reading an article that said something about it not being necessary to do it a couple times a day, but a reboot every couple of days or so would probably be good.

Is there any way not rebooting for too long could cause connection issues like this? I'm pretty unfamiliar with how dream seeker handles connections, or how useful reboot is with hosting. I know it resets/repops the world to its default state and such, but I haven't had much use for that yet.
I highly doubt no rebooting it will be an issue I've had servers run for months at a time .

Just out of curiosity though have you tried opening the port using iptables ? Might help the issue even though users can already join still worth a shot, I suspect it is the BYOND version you are using though.
Hm. No, definitely not. I'm not even 100% sure what you're referring to, to be honest. I'm not very into linux, and have to look up a guide any time I have to do something I haven't memorized; all I've memorized are the commands for hosting and closing a game too.

I've only done the most basic things to my server so that it can host, could you link me somewhere, or explain how to do this iptables thing? I could try it, as well.
http://www.linuxquestions.org/questions/linux-security-4/ how-to-open-ports-with-iptables-237939/

Last post change 25 to the port you are using

You should also run iptables-save after running the command.
Awesome, thanks. Also I just remembered that a different version for Linux hasn't been available in a while, until today that is, so the servers version may be further back than I thought it was. Hopefully updating it fixes things, but I'll look into the iptables as well.

Appreciate all the help. With any luck, I'll find and reply that this problem is fixed soon after some testing and what not.
The server is fully up to date, I've updated my BYOND, and a player experiencing the problem has also updated their BYOND. I tried the iptables thing, and so far I don't think it helped much if any.

It took no time at all for me to find the game unresponsive, I waited it out, and got connection timed out. I reconnected, waited a few minutes, and this occurred again but instead of connection timed out it simply caught up and became responsive. I got on again after sleeping, and it did the unresponsive for a while, and then catch up thing once again.

The other player experiencing it right now, unlike myself, has even tried clearing his cache. He's also watched his internet to ensure its not the problem. In his case, he simply gets connection failed with no freezes.

I'm really at a loss for this one. The player and I are usually idle minutes before it occurs, so my only guess now is that it could be related to the code I have for the AFK check, or the total time online.

AFK checks for client inactivity, and time online is just a simple proc that adds 1 to time online, spawn(10), then calls again to add 1. No while loop, just call, add, spawn, call, add, etc.

If that could be related, I could show the code for those, but honestly this is just a shot in the dark at the problem.
Same error in the log file again?
Ah, no. No more log file errors, run times or anything. The unknown bugs may have been fixed. Just the same old connection issues.
The connection issues seem to be just as bad as ever. New piece of information discovered about them, though. It seems that if a player is actively doing something, whether it be attacking, probably moving, or even just something that invokes a simple while loop; they will not Disconnect. I've personally tested this, and a player experiencing the connection issue discovered it too.

If the while loop method is invoked, as soon as that loop ends, you can end up with the game unresponsive and/or Disconnecting you within seconds. Applies to you, and only you though.

I thought this might have something to do with the afk check, or online time counter, but I don't see anything wrong with them. I'll list them below just incase.

mob
proc
AfkCheck()
if(src && src.client.inactivity >= 6000 && src.afk == 0) //10 minutes
src.afk = 1
world << "<font color=blue>[src.name] is now afk.</font>"
if(src && src.hasregen == 1 && src.regenerating == 0 && src.client.inactivity >= 300)
src.Regeneration()
if(src && src.hascorrupt == 1 && src.corrupting == 0 && src.client.inactivity >= 300)
src.Corruption()
spawn(100) //10 seconds
if(src)
src.AfkCheck()

Online()
if(src)
src.time_online += 1
spawn(10)
src.Online()



The afk check is called after character creation, and after loading. The online proc is the same.

I thought it could be the regeneration or corruption procs, since they use while loops, but the people experiencing this problem do not trigger those procs.

I'm not sure if this makes it easier to diagnose the problem, but had to give it a try because I really don't think it's the shell server or host service.
Would you be willing to provide me with the DMB/RSC to test host it?
Page: 1 2