Re: getting "ERROR: tuple concurrently updated" during concurrent grant/revoke operations (9.2.13)

From: Merlin Moncure <mmoncure(at)gmail(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: getting "ERROR: tuple concurrently updated" during concurrent grant/revoke operations (9.2.13)
Date: 2015-06-24 17:40:46
Message-ID: CAHyXU0w6=qzqmNfXEtHO8N-S3VtEOu=ectM-24nk9yASHkq+0w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Wed, Jun 24, 2015 at 10:51 AM, Andres Freund <andres(at)anarazel(dot)de> wrote:
> Hi,
>
> On 2015-06-24 10:43:22 -0500, Merlin Moncure wrote:
>> I was experiencing a problem where a script which was simultaneously
>> loading multiple database backups to private schemas was reliably
>> drawing the error, "ERROR: tuple concurrently updated" during
>> grant/revoke steps of the restore. (The problem isn't at all serious
>> because the impacted statement is irrelevant to this server.) If I
>> create a file,
>
>> breakit.sql:
>> GRANT ALL ON SCHEMA public TO PUBLIC;
>> REVOKE ALL ON SCHEMA public FROM PUBLIC;
>>
>> and bench it, it immediately draws the error:
>> [merlin(at)mernix ~]# pgbench -n -c16 -T30 -f breakit.sql postgres
>> Client 4 aborted in state 0: ERROR: tuple concurrently updated
>> Client 2 aborted in state 0: ERROR: tuple concurrently updated
>
> To me that's not a bug. There's lots and lots of ways to get 'ERROR:
> tuple concurrently updated' errors when doing catalog changes
> concurrently. There's been a fair amount of work (particularly from
> Robert) reducing the amount; but it's never been claimed to be complete.
>
> I do think it'd be a good idea to fix occurrances, but I don't think
> that's stuff amounting to a bug, which'd then entail backpatching.

right, makes sense.

> In the specific case here you have an actual problem with your data
> loading procedures - if they concurrenty affect the same schema,
> including revoking permisssions - you'll possibly have more troubles
> than just this. Actual users of, in this case, the public schema in
> already existing schemas won't like this for example. And there
> e.g. very well might be an extension in public schema.

That's pretty much correct. I use 'sed' to route public schema to a
private one for various backups. It works, but the GRANT/REVOKE
statements I didn't bother to route due to the fact this is an 'all
superuser' database. Thus, the error is completely harmless.

merlin

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message 德哥 2015-06-25 00:27:51 Re: BUG #13465: multi update query use CTE, result & plan not equal, BUG?
Previous Message Andres Freund 2015-06-24 15:51:28 Re: getting "ERROR: tuple concurrently updated" during concurrent grant/revoke operations (9.2.13)