On 8 June 2012 12:40, Andres Freund <and...@2ndquadrant.com> wrote: > Hi All, > > On Friday, June 08, 2012 12:42:00 PM Andres Freund wrote: >> On Friday, June 08, 2012 12:25:25 PM Valentine Gogichashvili wrote: >> > unfortunately I did not manage to keep the snapshot of the database, that >> > had this issue. > Ok, after some playing I could reproduce the issue: > > master: > S1: CREATE FUNCTION insertone() RETURNS void LANGUAGE plpgsql AS $$BEGIN > INSERT INTO data(data) VALUES (random()); EXCEPTION WHEN division_by_zero THEN > RAISE NOTICE 'huh'; END;$$; > S1: BEGIN; > S1: SELECT insertone() FROM generate_series(1, 1000); --subxid overflow > S2: BEGIN; > S2: SELECT insertone(); --allocate xid > > standby: > pg_basebackup > LOG: 00000: consistent recovery state reached at 0/5C0001C0 > LOG: 00000: recovery snapshot waiting for non-overflowed snapshot or until > oldest active xid on standby is at least 4752 (now 3750) > > master: > S1: commit: > S3: checkpoint; > > standby: > before patch: > crash in assert/elog > after: > LOG: 00000: recovery snapshots are now enabled > > So I can confirm the above patch fixes at least that bug. > > Andres
Committed, with minor changes in wording of comments and error messages. -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs