Timeout when trying to access docker engine from inside a container with .net framework
- Dominant language
- C#
- Stars
- 2.4k
- Forks
- 416
- PR merge metrics
- No merged PRs in 30d
Description
**Output of `dotnet --info`:**
```
.NET Core SDK (reflecting any global.json):
Version: 3.1.401
Commit: 5b6f5e5005
Runtime Environment:
OS Name: Windows
OS Version: 10.0.18363
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\3.1.401\
Host (useful for support):
Version: 3.1.7
Commit: fcfdef8d6b
.NET Core SDKs installed:
1.0.4 [C:\Program Files\dotnet\sdk]
1.1.0 [C:\Program Files\dotnet\sdk]
2.0.2 [C:\Program Files\dotnet\sdk]
2.1.2 [C:\Program Files\dotnet\sdk]
2.1.100 [C:\Program Files\dotnet\sdk]
2.1.200 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.400 [C:\Program Files\dotnet\sdk]
2.1.402 [C:\Program Files\dotnet\sdk]
2.1.500 [C:\Program Files\dotnet\sdk]
2.1.503 [C:\Program Files\dotnet\sdk]
2.1.507 [C:\Program Files\dotnet\sdk]
2.1.602 [C:\Program Files\dotnet\sdk]
2.1.604 [C:\Program Files\dotnet\sdk]
2.1.700 [C:\Program Files\dotnet\sdk]
2.1.701 [C:\Program Files\dotnet\sdk]
2.1.801 [C:\Program Files\dotnet\sdk]
2.2.401 [C:\Program Files\dotnet\sdk]
3.1.401 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.21 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.21 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.21 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.7 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
```
**What version of Docker.DotNet?:**
```
3.125.4
```
**Steps to reproduce the issue:**
I created a tiny console app in both .Net framework (4.7.2) and .Net core (3.1) to write out the number of containers.
static async Task Main(string[] args)
{
DockerClient client = new DockerClientConfiguration(new Uri("npipe://./pipe/docker_engine")).CreateClient();
IList containers = await client.Containers.ListContainersAsync(
new ContainersListParameters()
{
Limit = 10,
});
Console.WriteLine($"Number of containers = {containers.Count}");
}
I then set up two docker images to use the two exes and just run them. The images were based on mcr.microsoft.com/windows/servercore:ltsc2019
I then setup a docker-compose.yml file to run the two containers (using docker-compose up) with the following volumes defined
volumes:
- source: '\\.\pipe\docker_engine'
target: '\\.\pipe\docker_engine'
type: npipe
**What actually happened?:**
The .net core version ran fine with no errors. The .net framework version had a timeout
listcontainersframeworktest |
listcontainersframeworktest | Unhandled Exception: System.TimeoutException: The operation has timed out.
listcontainersframeworktest | at System.IO.Pipes.NamedPipeClientStream.ConnectInternal(Int32 timeout, CancellationToken cancellationToken, Int32 startTime)
listcontainersframeworktest | at System.IO.Pipes.NamedPipeClientStream.<>c__DisplayClass21_0.b__0()
listcontainersframeworktest | at System.Threading.Tasks.Task.InnerInvoke()
listcontainersframeworktest | at System.Threading.Tasks.Task.Execute()
listcontainersframeworktest | --- End of stack trace from previous location where exception was thrown ---
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
listcontainersframeworktest | at Docker.DotNet.DockerClient.<>c__DisplayClass6_0.<<-ctor>b__0>d.MoveNext() in /_/src/Docker.DotNet/DockerClient.cs:line 83
listcontainersframeworktest | --- End of stack trace from previous location where exception was thrown ---
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
listcontainersframeworktest | at Microsoft.Net.Http.Client.ManagedHandler.d__33.MoveNext() in /_/src/Docker.DotNet/Microsoft.Net.Http.Client/ManagedHandler.cs:line 164
listcontainersframeworktest | --- End of stack trace from previous location where exception was thrown ---
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
listcontainersframeworktest | at Microsoft.Net.Http.Client.ManagedHandler.d__31.MoveNext() in /_/src/Docker.DotNet/Microsoft.Net.Http.Client/ManagedHandler.cs:line 80
listcontainersframeworktest | --- End of stack trace from previous location where exception was thrown ---
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
listcontainersframeworktest | at Docker.DotNet.DockerClient.d__61.MoveNext() in /_/src/Docker.DotNet/DockerClient.cs:line 364
listcontainersframeworktest | --- End of stack trace from previous location where exception was thrown ---
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
listcontainersframeworktest | at Docker.DotNet.DockerClient.d__61.MoveNext() in /_/src/Docker.DotNet/DockerClient.cs:line 359
listcontainersframeworktest | --- End of stack trace from previous location where exception was thrown ---
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
listcontainersframeworktest | at Docker.DotNet.DockerClient.d__51.MoveNext() in /_/src/Docker.DotNet/DockerClient.cs:line 206
listcontainersframeworktest | --- End of stack trace from previous location where exception was thrown ---
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
listcontainersframeworktest | at Docker.DotNet.ContainerOperations.d__3.MoveNext() in /_/src/Docker.DotNet/Endpoints/ContainerOperations.cs:line 39
listcontainersframeworktest | --- End of stack trace from previous location where exception was thrown ---
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
listcontainersframeworktest | at ListDockerContainers.Program.d__0.MoveNext()
listcontainersframeworktest | --- End of stack trace from previous location where exception was thrown ---
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
listcontainersframeworktest | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
listcontainersframeworktest | at ListDockerContainers.Program.(String[] args)
**What did you expect to happen?:**
I thought both little apps would work fine. Hopefully, I'm doing something obviously wrong.
**Additional information:**
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.