| From: | Álvaro Herrera <alvherre(at)kurilemu(dot)de> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Tighten ACL check in repack_is_permitted_for_relation() |
| Date: | 2026-08-19 10:27:16 |
| Message-ID: | E1wwdVr-00000001CRm-1WFV@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Tighten ACL check in repack_is_permitted_for_relation()
repack_is_permitted_for_relation() uses pg_class_aclcheck_ext()
to silently skip a concurrently-dropped relation. That's wrong
for a caller that may already hold a lock on the relation whose
ACL is checked, where missing a relation is not fine, and it
makes the single-relation REPACK and CLUSTER cases more brittle.
So only detect a missing relation where that's expected,
following the fix for vacuum_is_permitted_for_relation() in
commit 824d5f6241ea.
The new already_locked behavior is limited to get_tables_to_repack()
and get_tables_to_repack_partitioned(). All other callers of
repack_is_permitted_for_relation() hold a lock on the relation
that prevents it from being concurrently dropped, so this commit
also adds an assertion to that effect.
While at it, update the comment in RangeVarCallbackMaintainsTable to
also mention REPACK.
Author: Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>
Backpatch-through: 19
Discussion: https://www.postgresql.org/message-id/CALj2ACX3pyuRS8%2B%2B6L20cJUMRTf_qbbVp69J1btJ3y6%3D77e5gw%40mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/e13851080ce16acb6f1c7307512dbd48cd4930dd
Modified Files
--------------
src/backend/commands/repack.c | 35 ++++++++++++++++++++++++-----------
src/backend/commands/tablecmds.c | 2 +-
2 files changed, 25 insertions(+), 12 deletions(-)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alexander Korotkov | 2026-08-19 10:49:25 | pgsql: postgres_fdw: push down FUNCTION RTE into foreign joins |
| Previous Message | Amit Langote | 2026-08-19 07:40:32 | pgsql: Give RI fast-path cached FmgrInfos their own memory context |