Concurrent ALTER SEQUENCE RESTART Regression

From: Jason Petersen <jason(at)citusdata(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: Concurrent ALTER SEQUENCE RESTART Regression
Date: 2017-04-24 19:52:33
Message-ID: D992B4C2-8F80-4DE0-8348-6E0696C3F967@citusdata.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

I recently found a behavior regression for ALTER SEQUENCE.

Repro. Steps
============

1. Create a new sequence: CREATE SEQUENCE my_seq;
2. Start this loop twice in different shells:
while true; do psql -1Xtc 'ALTER SEQUENCE my_seq RESTART 1'; done

Expected (pre-10) Behavior
==========================

Each loop should repeatedly succeed and simply print ALTER SEQUENCE over and over.

Actual (PG 10) Behavior
=======================

The output stream is punctuated by occasional "ERROR: tuple concurrently updated" messages.

Summary
=======

While I understand the above workload is nonsensical, given the non-transactional behavior of ALTER SEQUENCE statements, previous PostgreSQL versions did not produce an error. It is likely applications have been coded with that assumption and will not deal well with the new behavior.

Having poked around the code a bit, I see the functions to access for sequence state have changed; I’m assuming this is an unintended side-effect of that change.

I haven’t worked up a patch myself, but I have some hope someone more familiar with the underlying changes could make quick work of this.

--
Jason Petersen
Software Engineer | Citus Data
303.736.9255
jason(at)citusdata(dot)com

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message cinbau 2017-04-24 22:20:01 BUG #14631: Allow pg_restore to remap schema
Previous Message Manuel Pradal 2017-04-24 18:19:03 Re: plpgsql bug: `EXECUTE(sql_command) INTO rec` returns sometimes a NULL-able, sometimes not

Browse pgsql-hackers by date

  From Date Subject
Next Message Claudio Freire 2017-04-24 19:57:24 Re: Vacuum: allow usage of more than 1GB of work mem
Previous Message Jeevan Ladhe 2017-04-24 19:32:53 Re: DELETE and UPDATE with LIMIT and ORDER BY