Home
Categories
WIKI
Topic
User
LANGUAGE:
中文
English
关于1003僵尸进程的问题
Experiences and Insight
580
views ·
2
replies ·
To
floor
Go
花心胡萝卜
deepin
2020-10-23 04:04
Author
首先声明, 我说的不一定是正确的...因为我的golang半吊子水平....
初步排查了一下, 在launchWaitAux函数里, 调用了 exec.Command(program, args...), 然后通过各种回调进来的endFn, 在有异常的情况下, 貌似没有对cmd进行Wait导致了僵尸进程...不知道价格defer能不能解决问题哈...
不得不说, 这golang写的,,,,这回调函数嵌套的, 我个人感觉都赶上js的循环闭包回调了...
我看了一下日志, 找到个这个错误:
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
我亲自执行了一下, 确实失败了, 手动执行报错:
GIO_LAUNCHED_DESKTOP_FILE_PID=$; /usr/bin/cgexec -g memory,freezer,blkio:18@dde/uiapps/40 dde-top-panel
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试试水先...
Reply
Like 0
Favorite
View the author
All Replies
jingle
deepin
2020-10-23 04:58
#1
差不多定位到了startdde问题
Reply
Like 0
View the author
septemberhx
deepin
2020-10-23 05:19
#2
我估摸着还是有内存泄漏的地方的,之前专门查过一次内存泄漏,不过当时只解决了几个最严重的问题,然后使用一段时间后内存增加的并不多,所以就一直没在处理。
后面我在查一查看看哪里还可能泄漏。
Reply
Like 0
View the author
Please
sign
in first
Featured Collection
Change
Nuntia - Modern IMAP/SMTP mail client for Deepin (Beta tester wanted!)
[Tutorial] deepin25 WSL Offline Installation Guide
UOS AI 2.8 Released! Three New Intelligent Agents & Major Evolution
Solid Q&A | deepin 25 Common Questions – The Immutable System Edition
New Thread
Popular Ranking
Change
Nuntia - Modern IMAP/SMTP mail client for Deepin (Beta tester wanted!)
External Soundcard (Steinberg UR44C) produces no sound via PipeWire
Popular Events
More
初步排查了一下, 在launchWaitAux函数里, 调用了 exec.Command(program, args...), 然后通过各种回调进来的endFn, 在有异常的情况下, 貌似没有对cmd进行Wait导致了僵尸进程...不知道价格defer能不能解决问题哈...
不得不说, 这golang写的,,,,这回调函数嵌套的, 我个人感觉都赶上js的循环闭包回调了...
我看了一下日志, 找到个这个错误:
搜了一下changelog, 发现这个功能其实很早就有了, 我猜, 有僵尸进程的, 能稳定重新啊的, 大概率都装了dde-top-panel, 这也能说明为毛官方说不稳定重现, 而社区反应的都是稳定重现, 当然这结论也不一定对,,,
不知道这两者有什么冲突.
我能力有限, 只能排查到这里了, 我还发现我的顶栏总是莫名退出, 可能跟startdde限制内存有关系, 也侧面说明了顶栏程序有内存泄露的可能, 当然也可能是某些插件导致的 https://bbs.deepin.org/user/229957 小哥你抽空可以检查一下是不是有内存泄露.
https://bbs.deepin.org/user/48640 我只能分析到这里, 其他的让开发来吧. 我个人感觉十有七八是在exec.Command上出的毛病, 价格defer试试水先...