BUG #17487: Parallel execution fails when original user is removed

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: kravtsov(dot)k(at)gmail(dot)com
Subject: BUG #17487: Parallel execution fails when original user is removed
Date: 2022-05-19 18:46:41
Message-ID: 17487-b44f2aa8ab499e20@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 17487
Logged by: Kirill Kravtsov
Email address: kravtsov(dot)k(at)gmail(dot)com
PostgreSQL version: 14.3
Operating system: Centos 7
Description:

We're using temporary credentials to access the DB. The temporary
credentials are granted a role and automatically become that role on
connect. As soon as temporary credential is removed while the connection is
still alive, any regular query would continue to work, however, a parallel
query would cause an error:

ERROR: role with OID XXXXXX does not exist
CONTEXT: parallel worker

Reproduction steps:

Session 1 (postgres):

$ psql -U postgres
create role testparallelrole;
create role testparalleluser with login password '1';
grant testparallelrole to testparalleluser;
alter role testparalleluser set role testparallelrole;

Session 2 (testparalleluser):

$ psql -U testparalleluser -d postgres;
show role; -- shows testparallelrole
set force_parallel_mode TO 1;
select count(*) from pg_class ; -- ok

Session 1 (postgres):

drop role testparalleluser;

Session 2 (testparalleluser):

set force_parallel_mode TO 0;
select count(*) from pg_class ; -- ok
set force_parallel_mode TO 1;
select count(*) from pg_class ; -- fails

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Giorgio Saviane 2022-05-19 20:15:26 Re: BUG #17449: Disk space not released
Previous Message Alvaro Herrera 2022-05-19 12:03:56 Re: BUG #17485: Records missing from Primary Key index when doing REINDEX INDEX CONCURRENTLY