BUG #10155: BUG? Cann't remove new generated tuples after repeatable read transaction start.

From: digoal(at)126(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #10155: BUG? Cann't remove new generated tuples after repeatable read transaction start.
Date: 2014-04-28 08:37:25
Message-ID: 20140428083725.2656.36967@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 10155
Logged by: digoal.zhou
Email address: digoal(at)126(dot)com
PostgreSQL version: 9.3.3
Operating system: CentOS 6.4 x64
Description:

SESSION A :
digoal=# begin isolation level repeatable read;
BEGIN
digoal=# \dt
List of relations
Schema | Name | Type | Owner
--------+-----------------------+-------+----------
public | stat_pg_stat_database | table | postgres
public | tbl_cost_align | table | postgres
public | test | table | postgres
public | ttt | table | postgres
public | tttt | table | postgres
public | ttttt | table | postgres
(6 rows)

SESSION B :
digoal=# create table t as select * from pg_class;
SELECT 306

SESSION A :
no table t in it , A cann't see the t metadata in pg_class and pg_attr and
so on.
digoal=# \dt
List of relations
Schema | Name | Type | Owner
--------+-----------------------+-------+----------
public | stat_pg_stat_database | table | postgres
public | tbl_cost_align | table | postgres
public | test | table | postgres
public | ttt | table | postgres
public | tttt | table | postgres
public | ttttt | table | postgres
(6 rows)

SESSION B :
but B cann't reclaim rows from table t.
why?
i think postgresql cann't reclaim tuples already exists before repeatable
read transaction start, why this case t's tuples after session a and cann't
reclaim.

digoal=# delete from t;
DELETE 306
digoal=# vacuum freeze verbose t;
INFO: vacuuming "public.t"
INFO: "t": found 0 removable, 306 nonremovable row versions in 2 out of 2
pages
DETAIL: 306 dead row versions cannot be removed yet.
There were 0 unused item pointers.
0 pages are entirely empty.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO: vacuuming "pg_toast.pg_toast_33578"
INFO: index "pg_toast_33578_index" now contains 0 row versions in 1 pages
DETAIL: 0 index row versions were removed.
0 index pages have been deleted, 0 are currently reusable.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
INFO: "pg_toast_33578": found 0 removable, 0 nonremovable row versions in 0
out of 0 pages
DETAIL: 0 dead row versions cannot be removed yet.
There were 0 unused item pointers.
0 pages are entirely empty.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
VACUUM

when SESSION end;
session b can reclaim these dead tuple.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Heikki Linnakangas 2014-04-28 18:53:33 Re: BUG #10155: BUG? Cann't remove new generated tuples after repeatable read transaction start.
Previous Message 德哥 2014-04-27 02:18:27 Re: BUG #10144: PostgreSQL cost_index in costsize.c bug? (cann't estimate indexCorrelation correct)