Should USR2 always work?
laurens.pit at mirror42.com
Mon Nov 21 18:14:34 EST 2011
When deploying new code we go through the USR2 QUIT sequence. This works very nicely and gives zero downtime.
My question is whether there are instances when this sequence is known to not work, and instead you should really send QUIT first and then start all over?
I didn't expect that to be the case, but in the past year occasionally I've experienced I had to resort to QUIT and start all over in order to get all components loaded correctly.
Specifically: yesterday I upgraded several projects to rails 3.0.11 and added a new i18n .yml file in the config dir. After the USR2 QUIT sequence all new code seemed to work fine. Except the new .yml file wasn't loaded. Another run of USR2 and QUIT didn't resolve it. Only after QUIT and start of unicorn was the new .yml file loaded.
This was not just on one machine, which might have been a fluke. This was on all machines for all projects, consistently.
More information about the mongrel-unicorn