Linux内核的线程生命周期陷阱:一个令人抓狂的Bug
2025-04-10
工程师在优化Recall.ai的Output Media启动延迟时,遭遇了一个神秘的Bug:Chromium进程会在启动后随机终止。排查发现问题根源在于Bubblewrap的`--die-with-parent`标志以及Linux内核对PR_SET_PDEATHSIG的处理方式。该标志会使子进程在父线程(而非父进程)终止时收到SIGKILL信号。Tokio的线程管理机制与该行为相互作用,导致父线程被回收后,Chromium进程被意外终止。最终,移除该标志解决了问题,但暴露了Linux内核中一个鲜为人知的细节,提醒开发者需谨慎处理线程生命周期与进程隔离之间的互动。
开发