리눅스 커널 스레드 수명 주기의 함정: 임의로 종료되는 Chromium 프로세스의 경우
2025-04-10
Recall.ai의 Output Media 시작 지연 시간을 최적화하던 중 엔지니어는 당황스러운 버그를 발견했습니다. Chromium 프로세스가 시작 후 임의로 종료되는 현상이었습니다. 근본 원인은 Bubblewrap의 `--die-with-parent` 플래그와 리눅스 커널의 PR_SET_PDEATHSIG 처리 방식에 있었습니다. 이 플래그는 부모 프로세스가 아니라 부모 스레드가 종료될 때 자식 프로세스에 SIGKILL 신호를 보냅니다. Tokio의 스레드 관리 메커니즘이 이 동작과 상호 작용하여 부모 스레드가 회수될 때 Chromium이 예기치 않게 종료되었습니다. 플래그를 제거하여 문제는 해결되었지만, 리눅스 커널의 잘 알려지지 않은 특성이 드러나면서 스레드 수명 주기와 프로세스 격리가 상호 작용할 때 주의가 필요함을 강조합니다.
개발