stripe/einhorn — pull request #38 by ebroder (2014-08-06 03:24:52+00:00)
Title: Changing name of state variable broke graceful upgrades

Changing the state variable from `:reloading_for_preload_upgrade` to `:reloading_for_upgrade` means that upgrades from old version to new versions are broken. When the process re-execs, it gets passed in a state variable of `:reloading_for_preload_upgrade`, which it ignores, and sets `:reloading_for_upgrade` to its default value of false (thus not actually doing an upgrade).

We could potentially modify `Einhorn.update_state` to handle this case correctly (by renaming the variable), but that in turn means that downgrades will be broken unless you also change the state dump.