You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MpsAgent incorrectly adds Windows specific prefix "cmd /c " to StartGameCommand on Linux Containers (with -lcow flag).
Upon inspection of the source, it seems that the code uses SystemOperations to get the host operating system, but this fails when using -lcow as the container is Linux while the host is Windows. This springs up more issues with properties like GameWorkingDirectory.
fail: PlayFabLocalMultiplayerAgent[0]
Failed to start container based host with instance number 0. Exception: Docker.DotNet.DockerApiException: Docker API responded with status code=BadRequest, response={"message":"OCI runtime create failed: container_linux.go:370: starting container process caused: exec: \"cmd /c sleep 100\": stat cmd /c sleep 100: no such file or directory: unknown"}
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__DisplayClass16_0.<<StartContainer>b__0>d.MoveNext()
--- 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, Int64 elapsedThreshold)
at Microsoft.Azure.Gaming.VmAgent.ContainerEngines.DockerContainerEngine.StartContainer(String containerId)
at Microsoft.Azure.Gaming.VmAgent.ContainerEngines.DockerContainerEngine.CreateAndStart(Int32 instanceNumber, GameResourceDetails gameResourceDetails, ISessionHostManager sessionHostManager)
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.Azure.Gaming.LocalMultiplayerAgent.MultiplayerServerManager.CreateAndStartContainerWaitForExit(SessionHostsStartInfo startParameters)
at Microsoft.Azure.Gaming.LocalMultiplayerAgent.Program.Main(String[] args)
at Microsoft.Azure.Gaming.LocalMultiplayerAgent.Program.<Main>(String[] args)
I tried making a quick fix PR but seems to require reworking more than a few lines in order to avoid breaking other features. This seems to stem from SystemOperations being used for both the host (reading writing files) and the host (parsing paths in configuration).
The text was updated successfully, but these errors were encountered:
MpsAgent incorrectly adds Windows specific prefix "cmd /c " to StartGameCommand on Linux Containers (with -lcow flag).
Upon inspection of the source, it seems that the code uses SystemOperations to get the host operating system, but this fails when using -lcow as the container is Linux while the host is Windows. This springs up more issues with properties like GameWorkingDirectory.
As an example this configuration:
results in the error:
I tried making a quick fix PR but seems to require reworking more than a few lines in order to avoid breaking other features. This seems to stem from SystemOperations being used for both the host (reading writing files) and the host (parsing paths in configuration).
The text was updated successfully, but these errors were encountered: