I was trying to look into this further, and i suspect the problem has something to do with the file i/o shennanigans we're doing to work around screen's inability to log to an existing file descriptor.
What i find is that when i attach a strace to the lingering run process,
it immediately terminates with the following output (sorry about the
line wrap):
0 d...@pip:~$ sudo strace -p 24909
Process 24909 attached - interrupt to quit
open("../socket", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
write(2, "./run: 23: "..., 11) = 11
write(2, "cannot open ../socket: No such fi"..., 35) = 35
write(2, "\n"..., 1) = 1
exit_group(2) = ?
Process 24909 detached
0 d...@pip:~$
The socket has been deleted by the session destruction, of course -- i
think we're seeing some sort of race condition between runsv bringing
the service back up and cereal-admin removing the entire directory.
Sorry this isn't more conclusive yet, but i wanted to document what i'd
found.
--dkg
signature.asc
Description: OpenPGP digital signature

