When I caused a crash during the create_index regression test, recovery hit an
assertion failure. Minimal test case:
psql -X <<EOSQL
CREATE TABLE t (c text);
INSERT INTO t SELECT 'P0123456789abcdef' FROM generate_series(1,1000);
INSERT INTO t VALUES ('P0123456789abcdefF');
CREATE INDEX ON t USING spgist (c);
EOSQL
pg_ctl -m immediate -w restart
The log ends with:
29294 2015-07-27 04:41:43.330 GMT LOG: database system was not properly shut down; automatic recovery in progress
29294 2015-07-27 04:41:43.330 GMT LOG: redo starts at 0/17A4070
TRAP: FailedAssertion("!(xldata->parentBlk == -1)", File: "spgxlog.c", Line: 338)
29292 2015-07-27 04:41:43.338 GMT LOG: startup process (PID 29294) was terminated by signal 6: Aborted
29292 2015-07-27 04:41:43.338 GMT LOG: aborting startup due to startup process failure
REL9_4_STABLE is unaffected. I suspect, but have not checked, that a standby
replaying WAL from a cluster running "make installcheck" would observe the
same problem.
Thanks,
nm