Lists: | pgsql-bugs |
---|
From: | PG Bug reporting form <noreply(at)postgresql(dot)org> |
---|---|
To: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Cc: | sandhya(dot)k_s(at)nokia(dot)com |
Subject: | BUG #15159: Duplicate records for same primary key |
Date: | 2018-04-17 04:37:51 |
Message-ID: | 152393987113.19372.6629000851922993437@wrigleys.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 15159
Logged by: Sandhya KS
Email address: sandhya(dot)k_s(at)nokia(dot)com
PostgreSQL version: 9.3.14
Operating system: WindRiver
Description:
For 9.3.14 version, in customer environment we are facing the following
issue. Query to fetch the record for a particular primary key is displaying
one record. But when trying to display the duplicate records of that
table(sample command: SELECT <primary_key>, COUNT(*) FROM users GROUP BY
<primary_key> HAVING COUNT(*) > 1) is showing that there are 2 records for
the same primary key.
One more strange this is, if we delete all the records related to this
primary key, then one more primary key is showing up to be having duplicate
records. Checked the triggers as well: on delete no operation is being
performed on this table.
Questions:
1. Primary key is created to have unique records, then how two records are
being created/inserted?
2. After delete of malicious record, how other record is showing up to be
having duplicate records? Am I missing anything to be checked ?
From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | sandhya(dot)k_s(at)nokia(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #15159: Duplicate records for same primary key |
Date: | 2018-04-17 04:45:44 |
Message-ID: | 20180417044544.GE4998@paquier.xyz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
On Tue, Apr 17, 2018 at 04:37:51AM +0000, PG Bug reporting form wrote:
> 1. Primary key is created to have unique records, then how two records are
> being created/inserted?
> 2. After delete of malicious record, how other record is showing up to be
> having duplicate records? Am I missing anything to be checked ?
The bug nick-named around as freeze-the-dead. 9.3.21 has fixed an issue
where tuples not normally visible, or marked as dead could come back to
life and become visible. That's this entry in the release notes:
"Fix vacuuming of tuples that were updated while key-share locked (Andres
Freund, Álvaro Herrera)
In some cases VACUUM would fail to remove such tuples even though they
are now dead, leading to assorted data corruption scenarios."
And here are the corresponding release notes:
/docs/devel/static/release-9-3-21.html
So you first need to update this version of PostgreSQL, and then some
manual cleanup of those duplicated tuples is needed with for example a
tid mathing.
--
Michael