Restoring process trees with child-sub-reapers, nested pid-namespaces and inheri...
summary
Restores serialized process trees by actually reconstructing session leaders and reparenting using helper processes rather than guessing history, handling exits, nested pid namespaces and child-sub-reapers by creating temporary helpers, entering namespaces where needed, and killing helpers after fork. Proposes storing a closest derived ancestor (CAR) per process (exported in proc status) to resolve ambiguous creation order, includes a prototype with self-tests and a kernel patch series for container support (used in a Docker/virt branch) but not yet merged; implementation finds edge-case bugs during testing.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:28Process tree restoration basics
- 4:00Simple case algorithm
- 7:25Algorithm improvements with exits
- 9:12Nested pid-namespaces handling
- 11:46Child sub-reapers introduction
- 14:21Complex case with child sub-reapers
- 17:16Uncertainty in process creation
- 20:11Solution: closest derived ancestor
- 23:08Cover tree implementation
- 26:24Why not historical tree
- 27:30Q&A and feedback
related talks
01h 03mLinux Namespaces for Fun and Isolation
57mNamespaces for Security
24mA Case Study in Chaos Testing: Uncovering Kernel Scaling Issues
24mWrite your own container, for fun and no profit!
23mLife of a Container
33mLinux Container Internals
50mMaintaining a Real Time Stable Kernel
47mNamespacing the Linux Integrity Measurement Architecture
