BUG #14360: snapshot too old bug? cann't reclaim dead tuple after has only xmin's transaction.

From: digoal(at)126(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #14360: snapshot too old bug? cann't reclaim dead tuple after has only xmin's transaction.
Date: 2016-10-07 14:54:13
Message-ID: 20161007145413.1413.99726@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: 14360
Logged by: Zhou Digoal
Email address: digoal(at)126(dot)com
PostgreSQL version: 9.6.0
Operating system: CentOS 6.x x64
Description:

```
session a:
postgres=# select pg_sleep(1000);

then :
session b:
postgres=# insert into tbl1 values (1);
INSERT 0 1
postgres=# delete from tbl1;
DELETE 1
postgres=# insert into tbl1 values (1);
INSERT 0 1
postgres=# delete from tbl1;
DELETE 1

after old_snapshot_threshold:
cann't reclaim tbl1's dead tuple

but when it scan tbl1 , and then after old_snapshot_threshold again, it's ok
now.

postgres=# vacuum verbose tbl1;
INFO: vacuuming "public.tbl1"
INFO: "tbl1": found 0 removable, 2 nonremovable row versions in 1 out of 1
pages
DETAIL: 2 dead row versions cannot be removed yet.
There were 2 unused item pointers.
Skipped 0 pages due to buffer pins.
0 pages are entirely empty.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
VACUUM

postgres=# vacuum verbose tbl1;
INFO: vacuuming "public.tbl1"
INFO: "tbl1": found 0 removable, 0 nonremovable row versions in 1 out of 1
pages
DETAIL: 0 dead row versions cannot be removed yet.
There were 4 unused item pointers.
Skipped 0 pages due to buffer pins.
0 pages are entirely empty.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
```

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message digoal 2016-10-07 15:03:55 BUG #14361: snapshot too old bug? in xmin>=xid transaction, also raise snapshot too old error
Previous Message hubert depesz lubaczewski 2016-10-07 12:10:51 Re: Rows go missing when selecting "for update" after savepoint "play"