- Newest
- Most votes
- Most comments
Hello @REDACTEDUSER
I think you may be still having problems with the health check because you are starting the run.sh process, and this itself calls the executable, which is a child process of the run.sh file. The health check is unable to locate the entry point in the executable process because it is a child process of the run.sh, and you get the error you mention in Edit3.
Try specifying the game server directly in the --runtime-configuration parameter for the fleet, and see if that fixes you.
You should be sure to be on the newest version of the SDK, as the old one has a bug in it that will eventually cause a problem. Anyone not on the latest version should upgrade as soon as possible.
Thank you,
Al Murray :)
Hello @REDACTEDUSER
I have GameLift-CSharp-ServerSDK-3.2.1 NET45 running fine.
I think that the health check works because the exec command doesn't create a child process but replaces the current thread.
The error I get with GameLift-CSharp-ServerSDK-3.3.0 NET 45 (latest version) is this one
False[GameLiftError:ErrorType=LOCAL_CONNECTION_FAILED,ErrorName=Local connection failed.,ErrorMessage=Connection to local agent could not be established.]
False[GameLiftError:ErrorType=NETWORK_NOT_INITIALIZED,ErrorName=Networknot initialized.,ErrorMessage=Local network was not initialized.Have you called InitSDK()?]
My understanding is that this error
UnhandledException:System.AggregateException--->System.PlatformNotSupportedException:Operationisnot supported on this platform.
is related with using GameLift-CSharp-ServerSDK-3.3.0 NET35.
I tried again with the latest version, GameLift-CSharp-ServerSDK-3.3.0 NET 45, and I cant' get it to work. The fleet stays in the ACTIVATING state for an hour and then it goes to the ERROR state.
I tried with run.sh as well as specifying the game server directly in the --runtime-configuration parameter for the fleet.
Well, I could ran the latest version, yay! This last problem seems to be related with concurrent_executions 50, and not with the sdk version.
Hey Jonas
Try to log into the instance with my remote login tool. This link to the tool is good until 2019-12-01. I can update it periodically.
Let me know!
Al Murray :)
Excellent. Yes, you started fifty servers on your instance, which made it unstable. That would do it!
Thank you,
Al Murray :)
It seems to work with 40 but not with 50. Is there anyway I can debug this? It doesn't let me to log in to the instance.
Edit1:
With 40 it worked on us-east-1, us-west-2, sa-east-1. But it didn't work on eu-central-1.
Edit2:
I need someone to explain me how to debug this thing, how to write to the logs, and where those logs are, it's driving me crazy, and it's really making me think twice about using GameLift.
Case of fleet activating for an hour and then error, where's the log, what's going on?
If the instance doesn't start, where's the log?
If the instance starts but the activation fails, where's the log?
The game session logs are always empty, why is that?
Case after start_matckmaking call, ticket ends placing forever, where's the log? Why is this happening?
Case game server throws an unexpected exception, where's the log?
Case I want to print debug information, how do I do it, where's the log?
Case I lack permission to write/read somewhere, there's some missing file, where's the log?
Without using the run.sh script, none of these errors I've been debugging would come up, how do you expect someone to do this? Is it just me having all this problems? Is this not the intended use? What's going on guys?
Al, thanks for the tool.
I'm able to connect via ssh using the terminal, is this tool something different, do you have a version for mac?
Where can I find the logs once logged in via ssh?
/local/game/sessionLogs is empty
Where can I find the standard output and standard error? I used the run.sh script to do this, do you have other way of doing this?
When the instance is not initialized at all, there's no instance to login, like the case of running 50 concurrent executions, where I can find the log of what happened?
Hey Jonas,
We don't write logs to the instance. Standard output and standard error streams are not written to the disk by the process either. Use this to log output to Cloudwatch Logs
If you have too many concurrent processes, the instance will thrash until it hangs, due to resource over utilization. Reduce the number of concurrent processes you are requesting. Don't forget to scale the fleet to 0, then back up for the change to reflect on all fleet instances.
Thank you,
Al Murray :)
Solutions Architect.
Hey Jonas,
We don't write logs to the instance. Standard output and standard error streams are not written to the disk by the process either. Use this to log output to Cloudwatch Logs
If you have too many concurrent processes, the instance will thrash until it hangs, due to resource over utilization. Reduce the number of concurrent processes you are requesting. Don't forget to scale the fleet to 0, then back up for the change to reflect on all fleet instances.
Thank you,
Al Murray :)
Solutions Architect.
Just commenting to say that even though its almost one year later, this post helped me immensely! Specially the "hack" of run.sh so we can force everything to be output somewhere... makes me wonder why this is not the default, why does gamelift not output the logs somewhere accessible in the same way when calling the server executable... even if those logs could only be seen by remote access, that would already be extremely helpful...
Also, the one hour to go into error state is really painful... I am still using the free tier, learning the system and evaluating if its a good fit, so I dont want to be starting multiple fleets (1 is the limit), so that in practice means I launch a fleet, it fails, but I can only try my fixes over 1 hour later... the workflow to learn the system so far has been very clunky. Maybe its because I am not an expert at infrastructure and what not but... I had hoped it would be easier.
At any rate thanks for the tips here!
Relevant content
- Accepted Answerasked 2 years ago
- AWS OFFICIALUpdated 6 months ago
- AWS OFFICIALUpdated 9 months ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated a year ago