gpt4 book ai didi

unix - strace 修复挂起的进程

转载 作者:行者123 更新时间:2023-12-01 06:31:28 26 4
gpt4 key购买 nike

我有一个单线程的 unix 进程,它通过 tcp 与其他进程进行通信。

问题如下。
当我启动进程时,它会挂起(没有忙循环),直到我杀死它。

有趣的是,一旦我将 strace 附加到它,它就会继续以预期的行为运行,就好像根本没有问题一样。 (始终可重现)

这种行为的原因是什么? strace 对进程的状态有什么影响?

更新:
strace 改变行为的原因是,因为我们使用了带有 bug 的 openonload。一旦我们附加了 strace,堆栈就被移回内核,问题就消失了。

最佳答案

这个问题只有一次,它与信号处理有关,它是单线程代码中竞争条件的来源之一。

关于unix - strace 修复挂起的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20272845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com