Skip to content

Url path ignored when using resiliency #48979

Open
@anthonywoudenberg

Description

@anthonywoudenberg

Describe the bug

It seems that, when hedging is used, only the host of the request is replaced based on the configured urls, but their additional path gets ignored:

Image

Image

I would expect that the full url is used, especially given the examples using full urls as hedge urls (here for example).

To Reproduce

I've set up a minimal repository showcasing the issue: https://github.com/ti83magic/ResiliencyTests

Expected behavior

An attempted call using the full configured url:

Calls to these three endpoints in succession:

GET https://i-do-not-exist.io/aaaaaa/some-endpoint
GET https://nor-do-i.io/bbbbbb/some-endpoint
GET https://nor-i.io/cccccc/some-endpoint

Actual behavior

Calls to these three endpoints in succession:

GET https://i-do-not-exist.io/aaaaaa/some-endpoint
GET https://nor-do-i.io/aaaaaa/some-endpoint
GET https://nor-i.io/aaaaaa/some-endpoint

Exceptions (if any)

N/A

Further technical details

Using dotnet 8.0.303, with the following nugets:

    <PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.1"/>
    <PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="8.10.0"/>
    <PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2"/>

Using the latest versions of these nugets does not seem to matter:

    <PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.4"/>
    <PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="9.4.0"/>
    <PackageReference Include="Microsoft.Extensions.Options" Version="9.0.4"/>

Note: this was posted earlier here: dotnet/extensions#6298

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions