From: | "Imseih (AWS), Sami" <simseih(at)amazon(dot)com> |
---|---|
To: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | [BUG] autovacuum may skip tables when session_authorization/role is set on database |
Date: | 2023-12-13 20:42:45 |
Message-ID: | 4814073F-6387-4873-8B8E-4D6A7390DEC7@amazon.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
A recent case in the field in which a database session_authorization is
altered to a non-superuser, non-owner of tables via alter database .. set session_authorization ..
caused autovacuum to skip tables.
The issue was discovered on 13.10, and the logs show such messages:
warning: skipping "table1" --- only table or database owner can vacuum it
In HEAD, I can repro, but the message is now a bit different due to [1].
WARNING: permission denied to vacuum "table1”, skipping it
It seems to me we should force an autovacuum worker to set the session userid to
a superuser.
Attached is a repro and a patch which sets the session user to the BOOTSTRAP superuser
at the start of the autovac worker.
Thoughts?
Regards,
Sami
Amazon Web Services (AWS)
[1] https://postgr.es/m/20220726.104712.912995710251150228.horikyota.ntt@gmail.com
Attachment | Content-Type | Size |
---|---|---|
0001-v1-Force-autovacuum-to-use-bootstrap-superuser.patch | application/octet-stream | 2.2 KB |
repro.txt | text/plain | 2.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Dunstan | 2023-12-13 20:46:08 | Re: Add --check option to pgindent |
Previous Message | Andrew Dunstan | 2023-12-13 20:35:40 | Re: Clean up find_typedefs and add support for Mac |