The following bug has been logged on the website:
Bug reference: 13128
Logged by: Grant McAlister
Email address: grant@amazon.com
PostgreSQL version: 9.3.6
Operating system: Linux 64bit
Description:
Steps to reproduce
1. Set max_prepared_transactions to 2 in postgresql.conf.
2. start Postgres.
3. Create two uncommitted prepared transactions: BEGIN; PREPARE
TRANSACTION âtest1â; BEGIN; PREPARE TRANSACTION âtest2â;
4. Set max_prepared_transactions to 1 in postgresql.conf.
5. Restart Postgres again.
At this point the startup will fail with a fatal but the postmaster process
keeps running.
LOG: database system was interrupted; last known up at 2015-04-16 17:19:56
PDT
LOG: database system was not properly shut down; automatic recovery in
progress
LOG: record with zero length at 0/1826C70
LOG: redo is not required
LOG: recovering prepared transaction 1685
LOG: recovering prepared transaction 1683
FATAL: maximum number of prepared transactions reached
HINT: Increase max_prepared_transactions (currently 1).
Looks like their may be a LWLock that is not correctly getting released
which causes the process to hang rather then exit.