访问Triton推理服务器出现byte_count_ < total_size_错误
今天程序访问 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.