use*_*305
6
unix
process
rhel
strace
我有一个单线程 Unix 进程,它通过TCP与其他进程进行通信。
问题如下。当我启动该进程时,它会挂起(没有繁忙循环),直到我杀死它。
有趣的是,一旦我将strace附加到它,它就会继续以预期的行为运行,就好像根本没有任何问题一样(总是可重现)。
这种行为的原因可能是什么?strace对进程的状态有什么影响?
strace 改变行为的原因是,因为我们使用 openonload 有一个错误。一旦我们附加了 strace,堆栈就被移回内核,问题就消失了。