Skip to content

Not deregistering when consul health status fails  #71

@discobean

Description

@discobean

Hi, first thanks for some great software.

I am having an issue with consul health checks not working as expected when more than one service is registered with the same urlprefix.

If I have one service registered on for example: urlprefix=/microservice1, and the HTTP health check in consul is returning a successful result I get a new route added which has 100% weight, this is correct.

Then I add on a new host another urlprefix=/microservice1 service, then I check fabio routes, and I see it has now 2 routes, 50% going to the first host, 50% going to the second, that is expected.

However, when a HTTP health check fails for the first host and is critical, the route for the failing host is not removed. Only when both HTTP health checks fail on both servers are both routes removed. This is not expected.

You can see in the logs that fabio tries to route to the host, but it fails, and yet the attached healthcheck is critical, and it is still routing :(
2016/03/30 13:27:10 http: proxy error: dial tcp 10.90.34.115:39775: connection refused
2016/03/30 13:27:11 http: proxy error: dial tcp 10.90.34.115:39775: connection refused

It is as if the healthchecks are linked to both hosts somehow, maybe we have implemented it wrong?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions