GameLiftLocal Crashes when commands are given to it
We are in the process of testing GameLift for our game. We have created an Amazon Linux 2 VM under Virtual Box and have a working sample server form Github working and also have GameLiftLocal running on the machine.
We run Gamelift running the following command:
[ec2-user@vm_gamelift3 GameLiftLocal-1.0.5]$ java -jar GameLiftLocal.jar
This seems to result in a successful startup:
05:22:54,823 INFO || - [SocketIOServer] main - Session store / pubsub factory used: MemoryStoreFactory (local session store only)
05:22:59,344 WARN || - [ServerBootstrap] main - Unknown channel option 'SO_LINGER' for channel '[id: 0x88185e57]'
05:22:59,353 INFO || - [SDKConnection] main - GameLift SDK server (communicates with your game server) has started on http://localhost:5757
05:22:59,390 INFO || - [SocketIOServer] nioEventLoopGroup-2-1 - SocketIO server started at port: 5757
05:22:59,450 INFO || - [SdkWebSocketServer] WebSocketSelector-13 - WebSocket Server started on address localhost/127.0.0.1:5759
05:22:59,655 INFO || - [StandAloneServer] main - GameLift Client server (listens for GameLift client APIs) has started on http://localhost:8080
05:22:59,705 INFO || - [StandAloneServer] main - GameLift server sdk http listener has started on http://localhost:5758
We also get a good connection when starting up the game server sample locally. However, when we attempt to issue the local server a command, it always comes back with an exception
[ec2-user@vm_gamelift3 ~]$ aws gamelift create-game-session --endpoint-url http://127.0.0.1:5758 --maximum-player-session-count 2 --fleet-id fleet-123
An error occurred (NullPointerException) when calling the CreateGameSession operation (reached max retries: 4):
The server does not completely crash, but does give a warning and a call stack of the exception that was caught
05:25:31,497 WARN || - [GameLiftSdkHttpHandler] GameLiftSdkHttpHandler-thread-0 - Caught exception
java.lang.NullPointerException
at com.amazon.gamelift.handlers.GameLiftSdkHttpHandler.validateHeaders(GameLiftSdkHttpHandler.java:84)
at com.amazon.gamelift.handlers.GameLiftSdkHttpHandler.handle(GameLiftSdkHttpHandler.java:55)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:82)
at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:700)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:672)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
05:25:31,554 WARN || - [GameLiftSdkHttpHandler] GameLiftSdkHttpHandler-thread-0 - Caught exception null
This exception also occurs when we just try to describe the sessions, so it seems to be any command you issue the jar on that socket. How do I resolve this so that I can get to actually testing my code?
Thank you! David
Hi David,
May I confirm which documentation or guide which you have followed as you tried to test this? I would recommend double checking the guide here -> https://docs.aws.amazon.com/gamelift/latest/developerguide/integration-testing-local.html and following the exact steps for now.
One thing that stands out to me is that you have run Gamelift local as java -jar GameLiftLocal.jar
. Based on the doc this means that the default port 8080 will be used. However, in the AWS CLI commands the endpoint URL is --endpoint-url http://127.0.0.1:5758
. My understanding is that we must make the AWS CLI requests to the port or default port 8080 specified when starting Gamelift local
Can you please try changing the port to the default port 8080 instead? Please let us know how this goes.
Yes, I had switched the ports when calling to GameLiftLocal.jar. It should have been:
AWS gamelift create-game-session --endpoint-url http://172.16.0.39:8080 --maximum-player-session-count 2 --fleet-id fleet-123
Relevant questions
Using cloud init to configure an Amazon Linux 2 on-premise VM
asked 3 months agoGameLiftLocal Crashes when commands are given to it
asked 2 months agoWe have 2 volumes can't detach and delete
asked 2 months agoNo available process when using GameLiftLocal
Accepted Answerasked 4 months agoAirflow Web Server crashes when deploying
asked 7 months agoIs there an event for game session termination?
Accepted Answerasked 4 months agonodejs10.x Lambda Env != Amazon Linux 2 AMI Env
Accepted Answerasked 3 years agoGameLift Hosting for existing game
asked a year agoWe need to point two domains to the same EC2. It is not working.
asked 14 days agoHow to request php8.1 to be added to amazon-linux-extras
asked 3 months ago