Ouch! It brought another bug. > I completely understood the behavior thanks to your detailed > explanation. (And how to use log messages effectively :-)
Sorry, I just found that it's wrong, and found another problem brought by your patch. > I agree that the fix is appropriate. > > > I believe the attached fix is the right way to fix this. > > It also worked for me. Thank you. | * as if we had just replayed the record before the REDO location | * (or the checkpoint record itself, if it's a shutdown checkpoint). The test script following raises assertion failure. It's added with 'non-shutdown' checkpoint' just before shutting down immediately. Starting server aborts with the following message. | LOG: database system was not properly shut down; automatic recovery in progress | TRAP: FailedAssertion("!(((oldestActiveXID) != ((TransactionId) 0)))", File: "xlog.c", Line: 6771) | LOG: startup process (PID 28561) was terminated by signal 6: Aborted regards, -- Kyotaro Horiguchi NTT Open Source Software Center === #! /bin/sh killall postgres rm -rf $PGDATA/* initdb pg_ctl start -w sleep 1 psql postgres -c 'checkpoint' pg_ctl stop -m i cat > $PGDATA/recovery.conf <<EOF standby_mode = 'on' primary_conninfo = 'host=localhost port=9999 user=repuser application_name=pm01 keepalives_idle=60 keepalives_interval=5 keepalives_count=5' #restore_command = '/bin/true' recovery_target_timeline = 'latest' EOF cat >> $PGDATA/postgresql.conf <<EOF #log_min_messages = debug5 hot_standby = on EOF pg_ctl start ==== -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers