question

hfawns avatar image
hfawns asked

MockVMAgent crash in Docker at startup

I am am trying to verify the containorization of my UE4 game server using MockVMAgent. I have successfully tested the GSDK integration with RunContainer in MultiplayerSettings.json set to false.

When I run MockVMAgent with RunContainer set to true the program crashes with the following output:

TitleId: 19C2F8F6
BuildId: 628da65e-a404-40b0-85d1-2231eb6d1754
VmId: xcloudwusu4uyz5daouzl:WestUs:270e4d77-1fb5-4154-a573-e042cd291036:tvmps_527d09d5af494db18301bff2b4b715dd7fa30b34c16e48ec84d1ee199c97b0a4_d
Mock Agent is listening on port 56001
info: MockPlayFabVmAgent[0]
      game_port (TCP): Local port 56100 mapped to container port 7777
info: MockPlayFabVmAgent[0]
      Starting image pull for: mcr.microsoft.com/playfab/multiplayer:wsc-10.0.17134.285.
info: MockPlayFabVmAgent[0]
      [null]
info: MockPlayFabVmAgent[0]
      [null]
info: MockPlayFabVmAgent[0]
      [null]
info: MockPlayFabVmAgent[0]
      Event: PullImage. Properties: NULL, Metrics: {"downloadDuration":0.0,"extractDuration":0.0,"size":0.0}
info: MockPlayFabVmAgent[0]
      Event: ContainerStats. Properties: NULL, Metrics: {"containerCreationTimeMs":127.0}
info: MockPlayFabVmAgent[0]
      Created a container with session host id: 8908275d747fa119ad6fa72eb520d348c8b57daf29cc685a74814d23a0bcc041
info: MockPlayFabVmAgent[0]
      Creating the configuration file at Z:\O\PlayFabVmAgentOutput\2019-03-27T10-57-27\Config\ffffffff-ffff-ffff-f6f8-c21900000000628da65e-a404-40b0-85d1-2231eb6d1754WestUs\SH0\gsdkConfig.json
Unhandled Exception: Docker.DotNet.DockerApiException: Docker API responded with status code=InternalServerError, response={"message":"container 8908275d747fa119ad6fa72eb520d348c8b57daf29cc685a74814d23a0bcc041 encountered an error during Start: failure in a Windows system call: The compute system exited unexpectedly. (0xc0370106)"}
   at Docker.DotNet.DockerClient.HandleIfErrorResponseAsync(HttpStatusCode statusCode, HttpResponseMessage response, IEnumerable`1 handlers)
   at Docker.DotNet.DockerClient.MakeRequestAsync(IEnumerable`1 errorHandlers, HttpMethod method, String path, IQueryString queryString, IRequestContent body, IDictionary`2 headers, TimeSpan timeout, CancellationToken token)
   at Docker.DotNet.ContainerOperations.StartContainerAsync(String id, ContainerStartParameters parameters, CancellationToken cancellationToken)
   at Microsoft.Azure.Gaming.VmAgent.ContainerEngines.DockerContainerEngine.<>c__DisplayClass13_0.<<StartContainer>b__0>d.MoveNext() in C:\zEnlist\xcs_1\src\VmAgent\VmAgent.Common\Interfaces\DockerContainerEngine.cs:line 160
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.Azure.Gaming.VmAgent.TaskUtil.TimedExecute[T](Func`1 action, MultiLogger logger, String eventName, String metricName) in C:\zEnlist\xcs_1\src\VmAgent\VmAgent.Common\TaskUtil.cs:line 47
   at Microsoft.Azure.Gaming.VmAgent.ContainerEngines.DockerContainerEngine.StartContainer(String containerId) in C:\zEnlist\xcs_1\src\VmAgent\VmAgent.Common\Interfaces\DockerContainerEngine.cs:line 159
   at Microsoft.Azure.Gaming.VmAgent.ContainerEngines.DockerContainerEngine.CreateAndStart(Int32 instanceNumber, GameResourceDetails gameResourceDetails, ISessionHostManager sessionHostManager) in C:\zEnlist\xcs_1\src\VmAgent\VmAgent.Common\Interfaces\DockerContainerEngine.cs:line 355
   at Microsoft.Azure.Gaming.MockVmAgent.MultiplayerServerManager.CreateAndStartContainerWaitForExit(SessionHostsStartInfo startParameters) in C:\zEnlist\xcs_1\src\VmAgent\MockVmAgent\MultiplayerServerManager.cs:line 49
   at Microsoft.Azure.Gaming.MockVmAgent.Program.Main(String[] args) in C:\zEnlist\xcs_1\src\VmAgent\MockVmAgent\Program.cs:line 68
   at Microsoft.Azure.Gaming.MockVmAgent.Program.<Main>(String[] args)

I executed Setup.ps1 successfully and have set Docker Desktop to use Windows Containers. I'm not sure if it's relevant but MockVMAgent is running from Z drive and Docker is installed on C drive (default location). I am running Windows 10 Pro 1803 build 17134.648.

Any suggestion what the problem might be or tips in how I could go about diagnosing what's going on?

Thanks

10 |1200

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

1 Answer

·
hfawns avatar image
hfawns answered

I found the problem. I had set the mount path in MultiplayerSettings to be relative to Z drive rather than the the docker container (ie. C:\). I changed the mount path to C:\\Assets and it worked

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.