Skip to content

Commit eb45d57

Browse files
dependabot[bot]kfswain
authored andcommitted
Adding content length checker
1 parent afab4b7 commit eb45d57

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

config/manifests/inferencepool.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ spec:
4343
spec:
4444
containers:
4545
- name: epp
46-
image: us-central1-docker.pkg.dev/k8s-staging-images/gateway-api-inference-extension/epp:main
46+
image: us-east1-docker.pkg.dev/kfswain-gke-dev/test-repo/ext-proc:test-mar-51
4747
imagePullPolicy: Always
4848
args:
4949
- -poolName
50-
- "vllm-llama2-7b"
50+
- "my-pool"
5151
- -v
5252
- "4"
5353
- -grpcPort

pkg/epp/handlers/streamingserver.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ func (s *StreamingServer) Process(srv extProcPb.ExternalProcessor_ProcessServer)
5858
var body []byte
5959

6060
var requestBody, responseBody map[string]interface{}
61+
6162
// Create error handling var as each request should only report once for
6263
// error metrics. This doesn't cover the error "Cannot receive stream request" because
6364
// such errors might happen even though response is processed.
@@ -91,7 +92,18 @@ func (s *StreamingServer) Process(srv extProcPb.ExternalProcessor_ProcessServer)
9192
switch v := req.Request.(type) {
9293
case *extProcPb.ProcessingRequest_RequestHeaders:
9394
reqCtx.RequestReceivedTimestamp = time.Now()
94-
// Do nothing. Header info is handled in the HandleRequestBody func
95+
for _, h := range v.RequestHeaders.Headers.GetHeaders() {
96+
loggerVerbose.Info("Headers", "Key", h.Key, "val", string(h.RawValue))
97+
if h.Key == "content-length" {
98+
contentLength, err = strconv.Atoi(string(h.RawValue))
99+
if err != nil {
100+
logger.Error(err, "an error occurred casting the content length header to int")
101+
}
102+
}
103+
}
104+
if contentLength == 0 && !v.RequestHeaders.EndOfStream {
105+
err = errutil.Error{Code: errutil.BadRequest, Msg: "Inference Gateway requires a content-length header to be sent to the ext-proc"}
106+
}
95107
case *extProcPb.ProcessingRequest_RequestBody:
96108
loggerVerbose.Info("Incoming body chunk", "body", string(v.RequestBody.Body), "EoS", v.RequestBody.EndOfStream)
97109
// In the stream case, we can receive multiple request bodies.

0 commit comments

Comments
 (0)