Re: simple_heap_update: tuple concurrently updated -- during INSERT - Mailing list pgsql-hackers

From SZŰCS Gábor
Subject Re: simple_heap_update: tuple concurrently updated -- during INSERT
Date
Msg-id 005701c44ecf$09ab13e0$0403a8c0@fejleszt4
Whole thread Raw
In response to simple_heap_update: tuple concurrently updated -- during INSERT  ("SZŰCS Gábor" <surrano@mailbox.hu>)
List pgsql-hackers
Dear Tom,

I'll try my best. Also, I'll try to describe the situation more precisely,
in case it may give you another idea.

INSERT INTO p_items;
-> p_items before: INSERT, UPDATE and/or DELETE other tuples in p_items
-> p_items after: UPDATE p SET touch_time, toucher;
----> p after: INSERT INTO p_ny
-------> p_ny after: NOTIFY p

May it be that more "NOTIFY p"'s come from the same transaction (since I
change more than one tuples in p_items)? Based on the error text, I assume
this error comes only when two different transactions clash.

I think it's very unlikely anyway since it happens ~100-1000 times a day and
so far (~2 years of 7.3.3) this is the only occurence of this error.

A final question: as far as you can remember, may this be an issue already
fixed in later versions?

Thanks again, HTH, and I'll report back if I encounter the error again.
G.
%----------------------- cut here -----------------------%
\end

----- Original Message ----- 
From: "Tom Lane" <tgl@sss.pgh.pa.us>
Subject: Re: [HACKERS] simple_heap_update: tuple concurrently updated -- 
during INSERT


> "SZŰCS Gábor" <surrano@mailbox.hu> writes:
> > Q1. So is this everything that can be said -- NOTIFY calls
> > simple_heap_update that is concurrently updated by a different
transaction?
>
> If that's what it is, then there's still a question: why?  The notify
> code has enough locking that this failure shouldn't happen.  If you can
> reproduce this I'd like to look into it.
>
> regards, tom lane
>



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Can get GiST RECHECK clause to work
Next
From: "SZŰCS Gábor"
Date:
Subject: Re: simple_heap_update: tuple concurrently updated -- during INSERT