Skip to content

[Bug]: Testcontainers Desktop cannot hijack chunked or content length stream #34

@rogerfar

Description

@rogerfar

Very simple repo:

using Testcontainers.PostgreSql;

namespace test;

public class UnitTest1
{
  [Fact]
  public async Task Test1()
  {
    var postgres = new PostgreSqlBuilder().Build();
    await postgres.StartAsync();
  }
}

With the latest dependencies:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net9.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
		<PackageReference Include="Docker.DotNet.Enhanced" Version="3.128.5" />
		<PackageReference Include="Docker.DotNet.Enhanced.X509" Version="3.128.5" />
    <PackageReference Include="coverlet.collector" Version="6.0.2" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
    <PackageReference Include="Testcontainers" Version="4.6.0" />
		<PackageReference Include="Testcontainers.PostgreSql" Version="4.6.0" />
    <PackageReference Include="xunit" Version="2.9.2" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
  </ItemGroup>

  <ItemGroup>
    <Using Include="Xunit" />
  </ItemGroup>

</Project>

Gives the error:

[xUnit.net 00:00:00.91]   Finished:    test
  test test failed with 1 error(s) (1.4s)
    /_/src/Docker.DotNet/Microsoft.Net.Http.Client/HttpConnectionResponseContent.cs(37): error TESTERROR:
      test.UnitTest1.Test1 (820ms): Error Message: System.InvalidOperationException : cannot hijack chunked or content length stream
      Stack Trace:
         at Microsoft.Net.Http.Client.HttpConnectionResponseContent.HijackStream() in /_/src/Docker.DotNet/Microsoft.Net.Http.Client/HttpConnectionResponseContent.cs:line 37
         at Docker.DotNet.DockerClient.MakeRequestForHijackedStreamAsync(IEnumerable`1 errorHandlers, HttpMethod method, String path, IQueryString queryString, IRequestContent body, IDictionary`2 headers
      , TimeSpan timeout, CancellationToken cancellationToken) in /_/src/Docker.DotNet/DockerClient.cs:line 400
         at Docker.DotNet.ExecOperations.StartContainerExecAsync(String id, ContainerExecStartParameters parameters, CancellationToken cancellationToken) in /_/src/Docker.DotNet/Endpoints/ExecOperations.
      cs:line 58
         at DotNet.Testcontainers.Clients.DockerContainerOperations.ExecAsync(String id, IList`1 command, CancellationToken ct) in /_/src/Testcontainers/Clients/DockerContainerOperations.cs:line 165
         at Testcontainers.PostgreSql.PostgreSqlBuilder.WaitUntil.UntilAsync(IContainer container) in /_/src/Testcontainers.PostgreSql/PostgreSqlBuilder.cs:line 152
         at DotNet.Testcontainers.Containers.DockerContainer.CheckReadinessAsync(WaitStrategy waitStrategy, CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 646
         at DotNet.Testcontainers.Configurations.WaitStrategy.<>c__DisplayClass24_0.<<WaitUntilAsync>g__UntilAsync|0>d.MoveNext() in /_/src/Testcontainers/Configurations/WaitStrategies/WaitStrategy.cs:li
      ne 184
      --- End of stack trace from previous location ---
         at DotNet.Testcontainers.Configurations.WaitStrategy.WaitUntilAsync(Func`1 wait, TimeSpan interval, TimeSpan timeout, Int32 retries, CancellationToken ct) in /_/src/Testcontainers/Configurations
      /WaitStrategies/WaitStrategy.cs:line 213
         at DotNet.Testcontainers.Containers.DockerContainer.CheckReadinessAsync(IEnumerable`1 waitStrategies, CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 664
         at DotNet.Testcontainers.Containers.DockerContainer.UnsafeStartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 526
         at DotNet.Testcontainers.Containers.DockerContainer.StartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 309
         at test.UnitTest1.Test1() in C:\Projects\test\UnitTest1.cs:line 11
      --- End of stack trace from previous location ---

Running on Windows Docker Desktop 4.44.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions