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

-- 
 Andres Freund                     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

Reply via email to