two records with same oid, freak accident?

Started by Brett McCormickover 27 years ago2 messages
#1Brett McCormick
brett@work.chicken.org

in some sort of freak accident, we've ended up with a duplicated
record. all info, including the oid was duplicated.

it was during an update, two people ran a command at the same time.

user 1: BEGIN
user 1: NOTIFY
user 1: UPDATE
user 2: BEGIN
user 2: NOTIFY
user 1: END
user 2: UPDATE
user 2: END

same command, so the queries are the same. the record duplicated was
the one being updated. i'll try to reproduce it.

also, I had a unique index on the table, but that didn't seem to make
any difference.

any ideas on how to delete one without deleting both?

#2Massimo Dal Zotto
dz@cs.unitn.it
In reply to: Brett McCormick (#1)
Re: [HACKERS] two records with same oid, freak accident?

in some sort of freak accident, we've ended up with a duplicated
record. all info, including the oid was duplicated.

it was during an update, two people ran a command at the same time.

user 1: BEGIN
user 1: NOTIFY
user 1: UPDATE
user 2: BEGIN
user 2: NOTIFY
user 1: END
user 2: UPDATE
user 2: END

same command, so the queries are the same. the record duplicated was
the one being updated. i'll try to reproduce it.

also, I had a unique index on the table, but that didn't seem to make
any difference.

any ideas on how to delete one without deleting both?

I have the same problem with pg_listeners. Sometimes I find duplicate records
with same oid in the table inserted by concurrent transactions. I suspect
that the problem is caused by the notify but I'm not sure. Could you post
some test commnds to reproduce the problem ?

--
Massimo Dal Zotto

+----------------------------------------------------------------------+
|  Massimo Dal Zotto                e-mail:  dz@cs.unitn.it            |
|  Via Marconi, 141                 phone:  ++39-461-534251            |
|  38057 Pergine Valsugana (TN)     www:  http://www.cs.unitn.it/~dz/  |
|  Italy                            pgp:  finger dz@tango.cs.unitn.it  |
+----------------------------------------------------------------------+