>> Adding a new state to ControlFileData which would prevent it from
>> starting?
>
> But then you have to make sure the control flag gets cleared in any
> case pg_verify_checksums crashes somehow or gets SIGKILL'ed ...
The usual approach is a restart with some --force option?
> Setting the checksum flag is done after having finished all blocks, so
> there is no problem.
There is also a problem if the db is started while the checksum is being
enabled.
> But we need to set this new flag before and reset it afterwards, so in
> between strange things can happen (as the various calls to exit() within
> error handling illustrates).
Sure, there is some need for a backup plan if it fails and the control
file is let in a wrong state.
--
Fabien.