今天程序访问 Triton 推理服务器时出现了以下错误:

E1207 15:20:17.464196303      61 proto_buffer_writer.h:83]   assertion failed: byte_count_ < total_size_

服务结构是,一台实体宿主机子上用 Docker 分别运行 Triton 推理服务和应用服务。应用服务通过宿主机的 IP 访问 Triton 推理服务。

尝试把应用服务放到其他机子上,有的会重现上面的问题,有的不能。

后面排查自己的代码,再看 Triton 客户端 SDK 的说明,原因出在 Infer 上,因为 Infer 不支持多线程,而我在多个线程中同时调用了 Infer 导致随机出现异常。

官方说明:

Most of the methods are thread-safe except Infer, AsyncInfer, StartStream StopStream and AsyncStreamInfer. Calling these functions from different threads will cause undefined behavior.

  1. Class InferenceServerGrpcClient

发表回复

您的电子邮箱地址不会被公开。