Thread: Re: [COMMITTERS] pgsql: Add new catalog called pg_init_privs
Stephen Frost wrote: > Add new catalog called pg_init_privs > > This new catalog holds the privileges which the system was > initialized with at initdb time, along with any permissions set > by extensions at CREATE EXTENSION time. This allows pg_dump > (and any other similar use-cases) to detect when the privileges > set on initdb-created or extension-created objects have been > changed from what they were set to at initdb/extension-creation > time and handle those changes appropriately. If you have an extension that's marked not relocatable and drop it, its schema is left behind; trying to create the extension again, *crash*. $ cat /pgsql/install/master/share/extension/crash--1.sql grant usage on schema @extschema@ to public; $ cat /pgsql/install/master/share/extension/crash.control comment = 'crash' default_version = '1' relocatable = false superuser = true schema = 'crash' alvherre=# create extension crash; CREATE EXTENSION alvherre=# drop extension crash; DROP EXTENSION alvherre=# \dn Listado de esquemasNombre | Dueño --------+----------crash | alvherrepublic | alvherre (2 filas) alvherre=# create extension crash; el servidor ha cerrado la conexión inesperadamente Probablemente se debe a que el servidor terminó de manera anormal antes o durante el procesamiento de la petición. La conexión al servidor se ha perdido. Intentando reiniciar: con éxito. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Alvaro, * Alvaro Herrera (alvherre@2ndquadrant.com) wrote: > Stephen Frost wrote: > > Add new catalog called pg_init_privs > > > > This new catalog holds the privileges which the system was > > initialized with at initdb time, along with any permissions set > > by extensions at CREATE EXTENSION time. This allows pg_dump > > (and any other similar use-cases) to detect when the privileges > > set on initdb-created or extension-created objects have been > > changed from what they were set to at initdb/extension-creation > > time and handle those changes appropriately. > > If you have an extension that's marked not relocatable and drop it, its > schema is left behind; trying to create the extension again, *crash*. Will take a look at this, though I'm just about to commit a fix that's probably related (and addresses Pavel's issue). Basically, for reasons unknown, I was calling systable_endscan() immediately after systable_getnext(), which doesn't work when you want to use the tuple you got back. Thanks! Stephen
Stephen Frost wrote: > Alvaro, > Will take a look at this, though I'm just about to commit a fix that's > probably related (and addresses Pavel's issue). Basically, for reasons > unknown, I was calling systable_endscan() immediately after > systable_getnext(), which doesn't work when you want to use the tuple > you got back. Yeah, I noticed that bug too. It might well explain the issue, because the tuple is seen as 0x7f. #0 heap_deform_tuple (tuple=tuple@entry=0x339f438, tupleDesc=tupleDesc@entry=0x7f680f3dcde0, values=values@entry=0x3390cd8, isnull=isnull@entry=0x339f3c8 "\177\177\177\177\177~\177\177h\367\071\003") at /pgsql/source/master/src/backend/access/common/heaptuple.c:881 #1 0x0000000000479e3a in heap_modify_tuple (tuple=tuple@entry=0x339f438, tupleDesc=0x7f680f3dcde0, replValues=replValues@entry=0x7ffd662a3770,replIsnull=replIsnull@entry=0x7ffd662a3750 "", doReplace=doReplace@entry=0x7ffd662a3760"") at /pgsql/source/master/src/backend/access/common/heaptuple.c:817 #2 0x0000000000518feb in recordExtensionInitPriv (objoid=46960, classoid=2615, objsubid=0, new_acl=0x339f188) at /pgsql/source/master/src/backend/catalog/aclchk.c:5305 #3 0x000000000051d2b5 in ExecGrant_Namespace (istmt=<optimized out>) at /pgsql/source/master/src/backend/catalog/aclchk.c:2942 Not sure what "Pavel's issue" is, since it's not listed in the open items page. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
* Alvaro Herrera (alvherre@2ndquadrant.com) wrote: > Stephen Frost wrote: > > Alvaro, > > > Will take a look at this, though I'm just about to commit a fix that's > > probably related (and addresses Pavel's issue). Basically, for reasons > > unknown, I was calling systable_endscan() immediately after > > systable_getnext(), which doesn't work when you want to use the tuple > > you got back. > > Yeah, I noticed that bug too. It might well explain the issue, because > the tuple is seen as 0x7f. > > #0 heap_deform_tuple (tuple=tuple@entry=0x339f438, tupleDesc=tupleDesc@entry=0x7f680f3dcde0, > values=values@entry=0x3390cd8, > isnull=isnull@entry=0x339f3c8 "\177\177\177\177\177~\177\177h\367\071\003") > at /pgsql/source/master/src/backend/access/common/heaptuple.c:881 > #1 0x0000000000479e3a in heap_modify_tuple (tuple=tuple@entry=0x339f438, tupleDesc=0x7f680f3dcde0, > replValues=replValues@entry=0x7ffd662a3770, replIsnull=replIsnull@entry=0x7ffd662a3750 "", > doReplace=doReplace@entry=0x7ffd662a3760 "") > at /pgsql/source/master/src/backend/access/common/heaptuple.c:817 > #2 0x0000000000518feb in recordExtensionInitPriv (objoid=46960, classoid=2615, objsubid=0, > new_acl=0x339f188) at /pgsql/source/master/src/backend/catalog/aclchk.c:5305 > #3 0x000000000051d2b5 in ExecGrant_Namespace (istmt=<optimized out>) > at /pgsql/source/master/src/backend/catalog/aclchk.c:2942 > > Not sure what "Pavel's issue" is, since it's not listed in the open > items page. Here's the latest message ID on the thread he started. CAFj8pRB_8WggxG1EKgfDQ_G_C1p1iLC_j9M3JfLfMLd2Vxt_+w@mail.gmail.com Pretty sure it's the same issue. Going through testing now and will push the fix very shortly. Thanks! Stephen
Stephen Frost wrote: > Here's the latest message ID on the thread he started. > > CAFj8pRB_8WggxG1EKgfDQ_G_C1p1iLC_j9M3JfLfMLd2Vxt_+w@mail.gmail.com > > Pretty sure it's the same issue. Going through testing now and will > push the fix very shortly. May I suggest adding the extension I showed to src/test/modules/test_extensions. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Alvaro,
On Friday, April 15, 2016, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
On Friday, April 15, 2016, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
Stephen Frost wrote:
> Here's the latest message ID on the thread he started.
>
> CAFj8pRB_8WggxG1EKgfDQ_G_C1p1iLC_j9M3JfLfMLd2Vxt_+w@mail.gmail.com
>
> Pretty sure it's the same issue. Going through testing now and will
> push the fix very shortly.
May I suggest adding the extension I showed to
src/test/modules/test_extensions.
Yup, already done and will be included in my commit.
Thanks!
Stephen
* Alvaro Herrera (alvherre@2ndquadrant.com) wrote: > Stephen Frost wrote: > > Alvaro, > > > Will take a look at this, though I'm just about to commit a fix that's > > probably related (and addresses Pavel's issue). Basically, for reasons > > unknown, I was calling systable_endscan() immediately after > > systable_getnext(), which doesn't work when you want to use the tuple > > you got back. > > Yeah, I noticed that bug too. It might well explain the issue, because > the tuple is seen as 0x7f. Fix pushed. Thanks! Stephen