BUG #13541: There is a visibility issue when run some DDL and Query. The time window is very shot

From: beijing_pg(at)163(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #13541: There is a visibility issue when run some DDL and Query. The time window is very shot
Date: 2015-08-07 12:16:43
Message-ID: 20150807121643.32633.60549@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-docs

The following bug has been logged on the website:

Bug reference: 13541
Logged by: zhangjinyu
Email address: beijing_pg(at)163(dot)com
PostgreSQL version: 9.2.13
Operating system: suse
Description:

There is a visibility issue when run some DDL and Query. The time window is
very shot. Postgres is to hold relation lock after getsnapshot. Before a
query holds relation lock, if another session run a DDL(alter table alter
column set datatype), Once this DDL committed, select query will return zero
row, because the DDL(alter table alter column set datatype) will rewrite all
tuples with new transaction id.

We can use the following test case to repro the issue. we add sleep(40)
after GetTransactionSnapshot (in function exec_simple_query) to enlarge the
time window.
Step1: session1: select * from t; (return 3 row)
set enable_sleep30_after_getsnapshot=on;
select * from t;
Step2: session2: begin transaction;
alter table t alter c1 set type char(10);
commit;

we can see session1 "select * from t" return 0 row.
======================================
session1:
select * from t; (it returns 3 rows)
set enable_sleep30_after_getsnapshot=on;
select * from t; (it returns 0 row)

session2:
start transaction;
alter table t alter c1 set type char(10);
end;

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2015-08-07 19:40:18 Re: Hang on NOTIFY
Previous Message Mark Simonetti 2015-08-07 11:32:38 Hang on NOTIFY

Browse pgsql-docs by date

  From Date Subject
Next Message Ross Reedstrom 2015-08-07 17:15:57 Re: Earliest Postgres credit patch
Previous Message Bruce Momjian 2015-08-06 03:03:57 Re: Using '>' in docs