Skip to content
This repository was archived by the owner on Feb 16, 2026. It is now read-only.
This repository was archived by the owner on Feb 16, 2026. It is now read-only.

Health probes fail when HTTP response does not contain reason phrase #2069

Description

@philipseidel

Expected Behavior

When an HTTP server responds with a valid HTTP status code and no reason phrase a Varnish health probe should consider it valid.

Current Behavior

Some application servers are starting to drop support for the reason phrase in an HTTP response. The spring-boot project is one example: spring-projects/spring-boot#6548. These updates are resulting in failed health probes since the response message does not contain a reason phrase HTTP/1.1 200 vs. HTTP/1.1 200 OK.

Possible Solution

Accept HTTP responses that don't contain a reason phrase as valid as RFC-2616 states that The client is not required to examine or display the Reason- Phrase. I am not sure I agree with this but that is how some projects are interpreting the spec.

Steps to Reproduce (for bugs)

  • Create a text file with the following markup.
HTTP/1.1 200

Hello World!
  • Run simple netcat server while true ; do nc -l 80 < test.html ; done
  • Create simple VCL
backend default {
  .host = "127.0.0.1";
  .port = "http";
  .probe = {
    .url = "/";
    .window = 8;
    .threshold = 3;
    .initial = 3;
  }
}
  • Reload/Start varnish
  • Watch backend health statistics watch 'varnishadm debug.health' and notice the Happy row will have the backend as - rather than H.
  • Update the text file to include a reason phrase.
HTTP/1.1 200 WOOT

Hello World!
  • Backend statistics should now be reporting H.

Context

It would seem that some are interpreting the spec as though the reason phrase is not required since the client shouldn't be required to examine it. If things continue to go this direction it will be hard to upgrade components that run behind Varnish and follow this pattern.

Your Environment

  • Version used: 3.0.7
  • Operating System and version: Red Hat Enterprise Linux Server release 6.7 (Santiago)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions