Skip to content

Curling a pod with failed readinessProbe should not hang #10765

@julz

Description

@julz

What version of Knative?

all recent versions

Expected Behavior

Curling a pod with a readiness probe set (with periodSeconds=0 to avoid the behaviour in #10764), should either error immediately or succeed due to us scaling things up / terminating the pod (needs discussion about what the right behaviour is!).

Actual Behavior

Curling a pod with a failed readiness check hangs (unless there are other scaled-up pods for the request). The pod is never killed, because there is no liveness probe, but the set of routable pods is empty. In upstream k8s you would get a "no healthy upstream" error, in knative your curl hangs 😢.

Steps to Reproduce the Problem

  1. ko apply -f https://github.com/julz/readybutnotsteady/blob/main/service-no-period.yaml
  2. Wait for startup to succeed
  3. curl readynotsteady.default.$domain/start-failing
  4. Wait a few seconds for the pod to go unready
  5. curl readynotsteady.default.$domain (hangs).

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/autoscalearea/networkingkind/bugCategorizes issue or PR as related to a bug.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.triage/acceptedIssues which should be fixed (post-triage)

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions