Open dtpryce opened 1 year ago
@cliveseldon would this behaviour be different in V2? We are about to look at upgrading
It would be a bug on either version. We have not had a chance to replicate on v1 yet. Trying the same model on V2 would be useful.
Ok well we should be trying some V2 stuff out soon but would love to hear about a fix, we are seeing this more and more now with our JSON output models.
We have also discovered that gRPC endpoint do not suffer from this bug. So this is only relevant to REST and appears to be on both long JSON string input and output.
Hey @dtpryce ,
So far we haven't been able to replicate this one internally. Could you share more details about your environment that can help us replicate it (e.g. what ingress are you using, is there a LB on front of that, etc.)?
Also, could you try testing this with the latest SC?
Hey @adriangonz Sorry for slow response. I will let @Kolajik comment more on the infrastructure but I do know that we were going through a slightly different ingress.
We are also about to deploy V2 and will keep this issue in mind before rolling out.
Describe the bug
When using a custom MLServer model we have created a JSON input (JSON str) and output (JSON dict) via curl the length of one of the custom fields would cause Seldon Core to return status 200 but no payload. Testing directly against MLServer everything appears to be fine, then once the field used is longer than 18 characters this behaviour appears only in Seldon Core.
To reproduce
Expected behaviour
See above plus screenshots below
One more thing to note is that the rest of the entries in data dictionary were fixed in testing but might be contributing to overall length of payload, in screenshots you can see content-length of successful responses getting near to 500 characters before failure. If hard to reproduce try making sure the response dict is almost 500 chars long and then vary one field up to that threshold (it might be total content size?)
Environment
Model Details
Images of your model: [Output of:
kubectl get seldondeployment -n <yourmodelnamespace> <seldondepname> -o yaml | grep image:
where<yourmodelnamespace>
]Logs of your model: [You can get the logs of your model by running
kubectl logs -n <yourmodelnamespace> <seldonpodname> <container>
]Images are custom built and private so you will need to build something similar
No clear logging from either MLServer or Seldon Core on this - also part of the issue
The following screenshots show MLServer response all fine, then attempts of curling Seldon with various ResponseOutput / fields within lengths to get missing payload and no helpful logging.