DF-5673 / run.lifecycle.log
== RUN A == [step0] control port access, IOPL=0 -> OK(!) (expect SIGSEGV/#GP) [step1] open(/dev/io) ok, IOPL now = 3 (expect 3) [step2] port access with fd: OK (expect OK) [step3] parent closed fd (last close), parent IOPL=0 (expect 0 โ clr hit closer) [step4] child: all /dev/io fds closed, IOPL=3 (contract says 0) [step4] child: port access after last close: OK โ GRANT OUTLIVED THE FD [step5] child: uid=65534 IOPL=3 port access: OK โ GRANT SURVIVED PRIVILEGE DROP [done ] child exit status 0 EXIT=0 == RUN B == [step0] control port access, IOPL=0 -> SIGSEGV (expect SIGSEGV/#GP) [step1] open(/dev/io) ok, IOPL now = 3 (expect 3) [step2] port access with fd: OK (expect OK) [step3] parent closed fd (last close), parent IOPL=0 (expect 0 โ clr hit closer) [step4] child: all /dev/io fds closed, IOPL=3 (contract says 0) [step4] child: port access after last close: OK โ GRANT OUTLIVED THE FD [step5] child: uid=65534 IOPL=3 port access: OK โ GRANT SURVIVED PRIVILEGE DROP [done ] child exit status 0 EXIT=0