path: root/release
diff options
authorJessica Clarke <jrtc27@FreeBSD.org>2022-10-06 19:04:04 +0000
committerJessica Clarke <jrtc27@FreeBSD.org>2022-10-06 19:04:04 +0000
commita45048565a1cb4aec118a941237b00da83d56530 (patch)
treeab785b994188783c6915201d292422c22c392441 /release
parent142c3c7fefed51c0766c24e776a773fec7557050 (diff)
bsdinstall: Fix race condition when shutting down after installationHEADmain
Whilst reboot(8) will block whilst it runs, shutdown(8) does not, daemonizing instead. This means that we must wait after running it, otherwise we will exit and cause the system to attempt to go multi-user in parallel with the shutdown daemon killing init. With the new multi-console support in the installer, runconsoles will immediately kill this daemon, racing with the daemon being able to signal init as desired, and I have seen this race be lost in QEMU with a single CPU. In the past this wasn't such an issue, since shutdown's daemon puts itself in a new session group immediately after fork (and the parent doesn't wait until that has happened, so whilst there's technically a race condition in there where it could receive a SIGHUP from the death of the parent's session leader, in practice this is very unlikely to be hit. This means that the only consequence of this oversight before was that you might get the beginnings of more console output on the way to multi-user and thus the console would look a little confusing. Reviewed by: gjb Fixes: e4505364c087 ("release/rc.local: Provide option to shutdown after installation complete") Fixes: a09af1b7fd95 ("bsdinstall release: Start installer on multiple consoles") Differential Revision: https://reviews.freebsd.org/D36879
Diffstat (limited to 'release')
0 files changed, 0 insertions, 0 deletions