Skip to content

specifying features.knative.dev/http-full-duplex and h2c container port breaks the app #15688

Open
@dprotaso

Description

@dprotaso
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: hoge
  namespace: hoge
spec:
  template:
    metadata:
      annotations:
        autoscaling.knative.dev/minScale: "0"
        features.knative.dev/http-full-duplex: Enabled
        instrumentation.opentelemetry.io/inject-nodejs: opentelemetry-collector/instrumentation
        refresh: "true"
      creationTimestamp: null
    spec:
      containerConcurrency: 0
      containers:
      - envFrom:
        - secretRef:
            name: hoge
        image: xxxxx
        name: hoge
        ports:
        - containerPort: 50052
          name: h2c
          protocol: TCP
        readinessProbe:
          successThreshold: 1
          tcpSocket:
            port: 0
        resources:
          limits:
            memory: 500Mi
          requests:
            cpu: 10m
            memory: 300Mi
      responseStartTimeoutSeconds: 1800
      serviceAccountName: hoge
      timeoutSeconds: 60
  traffic:
  - latestRevision: true
    percent: 100

You'll see in the queue-proxy logs Unable to enable full duplex and it doesn't work

{"severity":"error","timestamp":"2025-01-13T04:25:38.690Z","logger":"queueproxy","caller":"sharedmain/handlers.go:137","message":"Unable to enable full duplex","commit":"6a27004","knative.dev/key":"xxx/xxxx","knative.dev/pod":"xxxx","error":"feature not supported","stacktrace":"knative.dev/serving/pkg/queue/sharedmain.mainHandler.withFullDuplex.func5\n\tknative.dev/serving/pkg/queue/sharedmain/handlers.go:137\nnet/http.HandlerFunc.ServeHTTP\n\tnet/http/server.go:2171\nknative.dev/pkg/network/handlers.(*Drainer).ServeHTTP\n\tknative.dev/[email protected]/network/handlers/drain.go:113\ngolang.org/x/net/http2.(*serverConn).runHandler\n\tgolang.org/x/[email protected]/http2/server.go:2439"}

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions