Python主进程hang住的两个原因

  • 时间:
  • 浏览:1
  • 来源:神彩IOS下载_彩神IOS下载官方

系统进程2的表现是不断创建不断退出,为threading.start入口添加打印traceback,最终定位在另另另一个模块的心跳计时器。调大心跳周期,观察步骤1中的系统进程id,选则是心跳计时器系统进程。注: approach 2中可用ctrl-c构造异常,构造hang住的情况汇报。

最近使用Python遇到另另另一个非常不好定位的问提,表现都有Python主系统进程hang住。最终定位出另另另一个是subprocess模块的问提,另另另一个是threading.Timer系统进程的问提。

Python的subprocess比较强大,基本须要替换os.system、os.popen、commands.getstatusoutput的功能,要是在使用的过程中须要注意参数stdin/stdout/stderr使用subprocess.PIPE的情况汇报,不可能 管道通常会有默认的buffer size(Linux x86_64下实测是64K,这里有个问提io.DEFAULT_BUFFER_SIZE是8K,而ulimit -a的pipe size为512 * 8 = 4K?),父系统进程不可能 不使用communicate消耗掉子系统进程write pipe(stdout/stderr)中的数据,直接进入wait,此时子系统进程不可能 阻塞在了pipe的写上,从而因为父子系统进程都hang住。下面是测试代码。

另外,在subprocess模块源码中还注释说明了另外本身不可能 fork -> 子系统进程gc -> exec因为的系统进程hang住,全版信息须要阅读subprocess模块源码。

pstack 主系统进程,查看python语言源码的c调用栈,追踪主系统进程(图中系统进程1)的各个函数调用栈的python源码,猜测是阻塞在threading._shutdown法子上,修改threading模块源码,并添加日志,定位我我觉得阻塞在_exitFunc的循环join thread上。



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/feilengcui008/article/details/52831354

重现poc

定位步骤:

猜你喜欢

1500元左右的手机,好用。性价比高。推荐一下吧。谢谢

下载百度知道APP,抢鲜体验你对你这俩 回答的评价是?展开完整版你对你这俩 回答的评价是?展开完整版本回答由提问者推荐怪怪的推荐魅蓝e华为和小米。上官网去看看,总有一款一款

2020-03-22

赵老师,您好,不知道你们是怎么对这些表做读写比例分析的(不改源码/改源码)?

0人评论发布于2016-04-1520:36:192016-04-1520:31:18Ali_冷香zhenzhongpan0人评论1377人浏览0收藏来源:[直播]0人评论发布

2020-03-22

推荐个性价比高的智能手机,1000到3000的.最好亲自试验过。

华为nova4不错的,全网通6GB+128GB版本华为商城官网在售价为2499元,手机参数如下:1、屏幕:屏幕尺寸为6.4英寸,屏幕色彩为1670万色,分辨率为FHD+2310

2020-03-22

AI·重构企业客户服务能力

用于实时预测用户对物品偏好,支持企业定制推荐算法,支持A/BTest效果对比深度1挖掘企业与企业、企业与人物的关系,通很多 位交叉分析及智能算法,构建基于企业全息画像和企业关

2020-03-21

想买部手机,现在什么手机好

4、电池:电池容量为1000mAh(典型值),标配充电器支持4.5V/5A或5V/4.5A或5V/2A输出,兼容9V/2A快充,理论充电时间约1.5小时,续航更持久。3、性能:

2020-03-21