By using AWS re:Post, you agree to the Terms of Use
/GameLiftLocal Crashes when commands are given to it/

GameLiftLocal Crashes when commands are given to it

0

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

asked 2 months ago28 views
2 Answers
1

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.

SUPPORT ENGINEER
answered 2 months ago
0

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

answered 2 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions