When the puppetmaster process (via the service command, or calling the initscript directly), the restart can fail if the original process does not exit immediately. This is because the initscript is not written to wait for the original process to exit.
In my testing, adding "-R n" to the start-stop-daemon command in the initscript fixed the problem. It's difficult to determine an appropriate value for n, but it could be tunable via /etc/default/puppetmaster. It's definitely a problem not to wait at all for the process to exit.
When the puppetmaster process (via the service command, or calling the initscript directly), the restart can fail if the original process does not exit immediately. This is because the initscript is not written to wait for the original process to exit.
In my testing, adding "-R n" to the start-stop-daemon command in the initscript fixed the problem. It's difficult to determine an appropriate value for n, but it could be tunable via /etc/default/ puppetmaster. It's definitely a problem not to wait at all for the process to exit.