[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: postgresql upgrade: cannot start postmaster



Replying to myself: previous e-mail archived at
http://lists.debian.org/debian-user/2004/10/msg03246.html

Digging around, I've tracked down the messages about stopping postgresql to
/etc/init.d/postgresql, which is called by the prerm and preinst scripts. The
problem would seem to be that
    /etc/init.d/postgresql stop
will call
    start-stop-daemon --stop --verbose --exec ${POSTMASTER}
i.e. without specifying the signal to send. It therefore defaults to SIGTERM (man
 start-stop-daemon). When postmaster receives a SIGTERM it waits for all clients
to disconnect before quitting (man postmaster). The SIGQUIT I sent was overkill:
that causes it to quit without properly aborting any ongoing transactions.
SIGINT provides a half-way house, quitting immediately but safely.

Perhaps preinst and prerm should attempt to kill postmaster with a SIGTERM
(either using the init.d script or pg_ctl), pause, check whether it died, and if
it didn't prompt the user to determine whether to send a SIGINT or abort the
install / removal?

-----
Peter Taylor



Reply to: