Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Serving
  • Issue
  • #342

S
Serving
  • 项目概览

PaddlePaddle / Serving
大约 2 年 前同步成功

通知 187
Star 833
Fork 253
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 105
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 10
  • Wiki 2
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
S
Serving
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 105
    • Issue 105
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 10
    • 合并请求 10
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 2
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板
已关闭
开放中
Opened 3月 25, 2020 by saxon_zh@saxon_zhGuest

client作为子进程时出错退出导致别的子进程Hang住

Created by: wangxicoding

多个reader子进程连接不同的serving,当其中一个serving出错后(如显存超了),可能导致与之相连的reader子进程出错exit(-1)。 https://github.com/PaddlePaddle/Serving/blob/21b998fa5cdb2efed045a7379cb366476366b683/core/general-client/src/general_model.cpp#L364-L367 用多进程共享的Queue、Pipe时,如果子进程使用了锁或者信号量等共享对象,杀掉进程可能导致其它进程死锁。


具体现象 如图,某一serving显存超限,挂了。 image

导致与之相连的client获取inference结果出错,则client所在的子进程exit(-1)退出挂了。 image

接着导致程序所使用的Queue出错死锁,出现图中的名场面。。 image

为防止reader一个子进程挂了,程序死锁的情况,需要将上面代码中的exit(-1)改成返回错误码,或者抛出异常,供调用端处理

指派人
分配到
无
里程碑
无
分配里程碑
工时统计
无
截止日期
无
标识: paddlepaddle/Serving#342
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7