• 社区首页
  • 版块
关于1003僵尸进程的问题
体验心得178个浏览 ·2个评论
电梯直达到第
花心胡萝卜
deepin^4
发表于2020-10-22 12:04
楼主
首先声明, 我说的不一定是正确的...因为我的golang半吊子水平....

初步排查了一下,  在launchWaitAux函数里, 调用了 exec.Command(program, args...), 然后通过各种回调进来的endFn, 在有异常的情况下, 貌似没有对cmd进行Wait导致了僵尸进程...不知道价格defer能不能解决问题哈...

不得不说, 这golang写的,,,,这回调函数嵌套的, 我个人感觉都赶上js的循环闭包回调了...

我看了一下日志, 找到个这个错误:


  1. startmanager.go:665: [/bin/sh -c export GIO_LAUNCHED_DESKTOP_FILE_PID=$;exec /usr/bin/cgexec -g memory,freezer,blkio:18@dde/uiapps/40 dde-top-panel]: signal: terminated
Copy the Code
我亲自执行了一下, 确实失败了, 手动执行报错:

  1. GIO_LAUNCHED_DESKTOP_FILE_PID=$; /usr/bin/cgexec -g memory,freezer,blkio:18@dde/uiapps/40 dde-top-panel
  2. cgroup change of group failed
Copy the Code
我本身对cgexec没什么研究, 看了一些文章也是一知半解, 只能感觉这个命令十分的奇怪..

搜了一下changelog, 发现这个功能其实很早就有了, 我猜, 有僵尸进程的, 能稳定重新啊的, 大概率都装了dde-top-panel, 这也能说明为毛官方说不稳定重现, 而社区反应的都是稳定重现, 当然这结论也不一定对,,,

不知道这两者有什么冲突.

我能力有限, 只能排查到这里了, 我还发现我的顶栏总是莫名退出, 可能跟startdde限制内存有关系, 也侧面说明了顶栏程序有内存泄露的可能, 当然也可能是某些插件导致的 https://bbs.deepin.org/user/229957  小哥你抽空可以检查一下是不是有内存泄露.

https://bbs.deepin.org/user/48640 我只能分析到这里, 其他的让开发来吧. 我个人感觉十有七八是在exec.Command上出的毛病, 价格defer试试水先...





回复收藏只看作者
所有回复
jingle超级管理员
发表于2020-10-22 12:58
沙发
差不多定位到了startdde问题
septemberhx
deepin^5
发表于2020-10-22 13:19
板凳
我估摸着还是有内存泄漏的地方的,之前专门查过一次内存泄漏,不过当时只解决了几个最严重的问题,然后使用一段时间后内存增加的并不多,所以就一直没在处理。
后面我在查一查看看哪里还可能泄漏。
发布帖子

光荣榜

  • 周榜
  • 月榜
  • 总榜