question

tldQuantic avatar image
tldQuantic asked

"Waiting for heartbeats from the game server" stuck issue

Hi,

I am working on the integration of Playfab GSDK and I cannot run my game server within a container.

I am stuck indefinitely at these step: "Waiting for heartbeats from the game server....."

I followed this doc: https://docs.microsoft.com/en-us/gaming/playfab/features/multiplayer/servers/locally-debugging-game-servers-and-integration-with-playfab

I first tried your WindowsRunnerCSharp and cppWindowsRunnerGame samples in process mode and within a container and both are working.

Then, I tried with my own C++ game server and it is working in process mode but not within a container.

What I did:

- I removed all the containers with docker ps -a + docker rm -f

- I checked PF_ConsoleLogs.txt for any useful error message. Here is the content of the file: {"log":"Running Startup Script\n","stream":"stdout","time":"2020-12-08T17:24:35.3051686Z"} {"log":"Certificates located at: C:\\GameCertificates\n","stream":"stdout","time":"2020-12-08T17:24:35.3251688Z"}

- I triple checked if my .zip asset package contains all the required DLLs.

- I checked Windows Event log to see if there's any useful information about Docker failures. Here is the error I got: "hcsshim::System::CreateProcess: failure in a Windows system call: The user name or password is incorrect."

But I have exactly the same docker error with your WindowsRunnerCSharp sample which is working fine.

Any ideas?

multiplayer
2 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Rick Chen avatar image Rick Chen ♦ commented ·

We did a test running the WindowsRunnerCSharp in docker container. It went smoothly but the windows event log did show the error you mentioned ("hcsshim::System::CreateProcess: failure in a Windows system call: The user name or password is incorrect."). I don’t think this is the sign that your server code didn’t work and we cannot determine the issue from the information you provide. Could you please provide the code snippet of your game server code and the MultiplayerSettings.json config? For security reason, please remove any personal information and secret key when you post.

0 Likes 0 ·
Edward Beazer avatar image Edward Beazer commented ·

Did you ever figure this out? I'm having the same issue and I'm using the basic Third Person template for Unreal as a test before integrating into my project

,

Did you ever figure this out? I'm having the same issue atm

0 Likes 0 ·
tldQuantic avatar image
tldQuantic answered

@Junjin Chen/@Edward Beazer

I found the issue, it was a bug in our filesystem which was not working properly in container mode and created an infinite loop.

(@Edward Beazer: not sure that could help you for UE, sorry)

@Junjin Chen

Just to let you know that your cppWindowsRunnerGame sample loop infinitly on this step:

CurrentGameState: Terminating

And thanks for your help.

1 comment
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Edward Beazer avatar image Edward Beazer commented ·

I figured out my issue. It was in fact a DLL issue. vcruntime140_1.dll wouldn't copy over from my local machine. Luckily I had a VM that I could grab the file from. Once I included it in my package I was able to get it working.

Granted there was still some issues with the local test agent. Instead of exiting it would just hang at "Waiting for Heartbeats". I deployed it to test it in the live environment and so far it seems to be working as expected. Was able to get into standby, request a server and connect with two game clients

1 Like 1 ·
Nuka Gammana avatar image
Nuka Gammana answered

We've had the same issue and we fixed it by removing a CDO Constructor error.

10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.