On 04/25/2018 02:31 AM, 范国腾 wrote: > I have meet the similar issue when the postgres is not stopped normally. > > You could run pg_controldata to check if your postgres status is shutdown/shutdown in recovery. > > I change the /usr/lib/ocf/resource.d/heartbeat/pgsqlms to avoid this problem: > > elsif ( $pgisready_rc == 2 ) { > # The instance is not listening. > # We check the process status using pg_ctl status and check > # if it was propertly shut down using pg_controldata. > ocf_log( 'debug', 'pgsql_monitor: instance "%s" is not listening', > $OCF_RESOURCE_INSTANCE ); > # return _confirm_stopped(); # remove this line > return $OCF_NOT_RUNNING; > } Hello, It is a bad idea. The goal of _confirm_stopped is to check if the instance was properly stopped. If it wasn't you could corrupt your instance. _confirm_stopped return $OCF_NOT_RUNNING only if the instance was properly shutdown : elsif ( $controldata_rc == $OCF_NOT_RUNNING ) { # The controldata state is consistent, the instance was probably # propertly shut down. ocf_log( 'debug', '_confirm_stopped: instance "%s" controldata indicates that the instance was propertly shut down', $OCF_RESOURCE_INSTANCE ); return $OCF_NOT_RUNNING; } Regards, -- Adrien NAYRAT
Attachment:
signature.asc
Description: OpenPGP digital signature