Re: [HACKERS] SEGFAULT in CREATE EXTENSION related pg_init_privs

2016-04-15 Thread Pavel Stehule
2016-04-16 4:12 GMT+02:00 Stephen Frost :

> Pavel,
>
> * Pavel Stehule (pavel.steh...@gmail.com) wrote:
> > 2016-04-14 14:26 GMT+02:00 Stephen Frost :
> > >
> > > * Pavel Stehule (pavel.steh...@gmail.com) wrote:
> > > > I am trying to prepare orafce for PostgreSQL 9.6.
> > > >
> > > > I can successfully compile this extension, but the statement CREATE
> > > > EXTENSION fails on segfault
> > >
> > > Just the latest off of https://github.com/orafce/orafce ?
> >
> > yes. When I commented REVOKE, then all tests passed. When you uncomment
> > REVOKE, then CREATE EXTENSION should to fail.
>
> Fix pushed, please let me know if you see any further issues.
>

Orafce is working without any issues now.

Thank you

Pavel



>
> Thanks!
>
> Stephen
>


Re: [HACKERS] SEGFAULT in CREATE EXTENSION related pg_init_privs

2016-04-15 Thread Stephen Frost
Pavel,

* Pavel Stehule (pavel.steh...@gmail.com) wrote:
> 2016-04-14 14:26 GMT+02:00 Stephen Frost :
> >
> > * Pavel Stehule (pavel.steh...@gmail.com) wrote:
> > > I am trying to prepare orafce for PostgreSQL 9.6.
> > >
> > > I can successfully compile this extension, but the statement CREATE
> > > EXTENSION fails on segfault
> >
> > Just the latest off of https://github.com/orafce/orafce ?
> 
> yes. When I commented REVOKE, then all tests passed. When you uncomment
> REVOKE, then CREATE EXTENSION should to fail.

Fix pushed, please let me know if you see any further issues.

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] SEGFAULT in CREATE EXTENSION related pg_init_privs

2016-04-14 Thread Pavel Stehule
Hi

2016-04-14 14:26 GMT+02:00 Stephen Frost :

> Pavel,
>
> * Pavel Stehule (pavel.steh...@gmail.com) wrote:
> > I am trying to prepare orafce for PostgreSQL 9.6.
> >
> > I can successfully compile this extension, but the statement CREATE
> > EXTENSION fails on segfault
>
> Just the latest off of https://github.com/orafce/orafce ?
>

yes. When I commented REVOKE, then all tests passed. When you uncomment
REVOKE, then CREATE EXTENSION should to fail.


> I took a quick look through and nothing is jumping out at me and,
> unfortunately, have a lot on my plate today.  I'll take a look at it
> later on tonight though.
>

I understand. Now, I have workaround, so I can to continue on fixing Orafce
for 9.6, and It is not blocker for me.

Regards

Pavel


>
> > This is enforced by sequence of statements REVOKE, GRANT
> >
> > try to add following lines to hstore--1.3.sql
> >
> > CREATE VIEW public.dual AS SELECT 'X'::varchar AS dummy;
> > REVOKE ALL ON public.dual FROM PUBLIC;
> > GRANT SELECT, REFERENCES ON public.dual TO PUBLIC;
> >
> > then create extension hstore enforces this error.
> >
> > When I remove the REVOKE statement - all is working.
>
> Ok, good to know, that'll help.
>
> Thanks!
>
> Stephen
>


Re: [HACKERS] SEGFAULT in CREATE EXTENSION related pg_init_privs

2016-04-14 Thread Stephen Frost
Pavel,

* Pavel Stehule (pavel.steh...@gmail.com) wrote:
> I am trying to prepare orafce for PostgreSQL 9.6.
> 
> I can successfully compile this extension, but the statement CREATE
> EXTENSION fails on segfault

Just the latest off of https://github.com/orafce/orafce ?

I took a quick look through and nothing is jumping out at me and,
unfortunately, have a lot on my plate today.  I'll take a look at it
later on tonight though.

> This is enforced by sequence of statements REVOKE, GRANT
> 
> try to add following lines to hstore--1.3.sql
> 
> CREATE VIEW public.dual AS SELECT 'X'::varchar AS dummy;
> REVOKE ALL ON public.dual FROM PUBLIC;
> GRANT SELECT, REFERENCES ON public.dual TO PUBLIC;
> 
> then create extension hstore enforces this error.
> 
> When I remove the REVOKE statement - all is working.

Ok, good to know, that'll help.

Thanks!

Stephen


signature.asc
Description: Digital signature


Re: [HACKERS] SEGFAULT in CREATE EXTENSION related pg_init_privs

2016-04-14 Thread Pavel Stehule
2016-04-14 10:49 GMT+02:00 Peter Geoghegan :

> On Thu, Apr 14, 2016 at 1:27 AM, Pavel Stehule 
> wrote:
> >  (gdb) bt
> > #0  heap_deform_tuple (tuple=tuple@entry=0x1d87e90,
> > tupleDesc=tupleDesc@entry=0x7f1dab9525b0, values=values@entry=0x1d87a28,
> > isnull=isnull@entry=0x1d882d8 "\177\177\177\177\177~\177\177") at
> > heaptuple.c:881
>
> The memory appears to be freed -- CLOBBER_FREED_MEMORY stuff does this.
>
> You might try using Valgrind, with --track-origins, which will show
> where the memory was first allocated.
>

I did it, but there is nothing interesting

 ==00:00:00:03.519 17221== For counts of detected and suppressed errors,
rerun with: -v
==00:00:00:03.519 17221== ERROR SUMMARY: 0 errors from 0 contexts
(suppressed: 0 from 0)
==00:00:01:09.357 17228== Invalid read of size 2
==00:00:01:09.357 17228==at 0x477A15: heap_deform_tuple
(heaptuple.c:881)
==00:00:01:09.357 17228==by 0x477ED9: heap_modify_tuple
(heaptuple.c:817)
==00:00:01:09.357 17228==by 0x516DDA: recordExtensionInitPriv.part.2
(aclchk.c:5305)
==00:00:01:09.357 17228==by 0x51954F: recordExtensionInitPriv
(aclchk.c:5262)
==00:00:01:09.357 17228==by 0x51954F: ExecGrant_Relation (aclchk.c:1965)
==00:00:01:09.357 17228==by 0x51A324: ExecGrantStmt_oids (aclchk.c:564)
==00:00:01:09.357 17228==by 0x51BDFE: ExecuteGrantStmt (aclchk.c:549)
==00:00:01:09.357 17228==by 0x6F88F8: ProcessUtilitySlow.isra.5
(utility.c:1514)
==00:00:01:09.357 17228==by 0x6F76BA: standard_ProcessUtility
(utility.c:907)
==00:00:01:09.357 17228==by 0x58ED9C: execute_sql_string
(extension.c:748)
==00:00:01:09.357 17228==by 0x58ED9C: execute_extension_script.isra.5
(extension.c:908)
==00:00:01:09.357 17228==by 0x58FC71: CreateExtensionInternal.isra.6
(extension.c:1500)
==00:00:01:09.357 17228==by 0x5901D7: CreateExtension (extension.c:1558)
==00:00:01:09.357 17228==by 0x6F8378: ProcessUtilitySlow.isra.5
(utility.c:1296)
==00:00:01:09.357 17228==  Address 0x7f7f7f7f7f7f7f91 is not stack'd,
malloc'd or (recently) free'd
==00:00:01:09.357 17228==.
{
   
   Memcheck:Addr2
   fun:heap_deform_tuple
   fun:heap_modify_tuple
   fun:recordExtensionInitPriv.part.2
   fun:recordExtensionInitPriv
   fun:ExecGrant_Relation
   fun:ExecGrantStmt_oids
   fun:ExecuteGrantStmt
   fun:ProcessUtilitySlow.isra.5
   fun:standard_ProcessUtility
   fun:execute_sql_string
   fun:execute_extension_script.isra.5
   fun:CreateExtensionInternal.isra.6
   fun:CreateExtension
   fun:ProcessUtilitySlow.isra.5
}

Regards

Pavel

>
> --
> Peter Geoghegan
>


Re: [HACKERS] SEGFAULT in CREATE EXTENSION related pg_init_privs

2016-04-14 Thread Peter Geoghegan
On Thu, Apr 14, 2016 at 1:27 AM, Pavel Stehule  wrote:
>  (gdb) bt
> #0  heap_deform_tuple (tuple=tuple@entry=0x1d87e90,
> tupleDesc=tupleDesc@entry=0x7f1dab9525b0, values=values@entry=0x1d87a28,
> isnull=isnull@entry=0x1d882d8 "\177\177\177\177\177~\177\177") at
> heaptuple.c:881

The memory appears to be freed -- CLOBBER_FREED_MEMORY stuff does this.

You might try using Valgrind, with --track-origins, which will show
where the memory was first allocated.

-- 
Peter Geoghegan


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] SEGFAULT in CREATE EXTENSION related pg_init_privs

2016-04-14 Thread Pavel Stehule
Hi

I am trying to prepare orafce for PostgreSQL 9.6.

I can successfully compile this extension, but the statement CREATE
EXTENSION fails on segfault

 (gdb) bt
#0  heap_deform_tuple (tuple=tuple@entry=0x1d87e90,
tupleDesc=tupleDesc@entry=0x7f1dab9525b0, values=values@entry=0x1d87a28,
isnull=isnull@entry=0x1d882d8 "\177\177\177\177\177~\177\177") at
heaptuple.c:881
#1  0x00477eda in heap_modify_tuple (tuple=tuple@entry=0x1d87e90,
tupleDesc=0x7f1dab9525b0,
replValues=replValues@entry=0x7ffc5e4076b0,
replIsnull=replIsnull@entry=0x7ffc5e407690
"",
doReplace=doReplace@entry=0x7ffc5e4076a0 "") at heaptuple.c:817
#2  0x00516ddb in recordExtensionInitPriv (objoid=objoid@entry=16471,
classoid=classoid@entry=1259,
objsubid=objsubid@entry=0, new_acl=new_acl@entry=0x1d879d0) at
aclchk.c:5305
#3  0x00519550 in recordExtensionInitPriv (new_acl=0x1d879d0,
objsubid=0, classoid=1259, objoid=16471) at aclchk.c:5262
#4  ExecGrant_Relation (istmt=0x7ffc5e407bc0) at aclchk.c:1965
#5  0x0051a325 in ExecGrantStmt_oids (istmt=istmt@entry=0x7ffc5e407bc0)
at aclchk.c:564
#6  0x0051bdff in ExecuteGrantStmt (stmt=stmt@entry=0x1b719f8) at
aclchk.c:549
#7  0x006f88f9 in ProcessUtilitySlow
(parsetree=parsetree@entry=0x1b719f8,

queryString=queryString@entry=0x1ae30d8 "/* contrib/orafce--3.2.sql
*/\n\n-- complain if script is sourced in psql, rather than via CREATE
EXTENSION\n\n\nCREATE FUNCTION pg_catalog.trunc(value date, fmt
text)\nRETURNS date\nAS '$libdir/orafce','ora"...,
context=context@entry=PROCESS_UTILITY_QUERY, params=params@entry=0x0,
completionTag=completionTag@entry=0x0,
dest=0xc7ec40 ) at utility.c:1514
#8  0x006f76bb in standard_ProcessUtility (parsetree=0x1b719f8,
queryString=0x1ae30d8 "/* contrib/orafce--3.2.sql */\n\n-- complain if
script is sourced in psql, rather than via CREATE EXTENSION\n\n\nCREATE
FUNCTION pg_catalog.trunc(value date, fmt text)\nRETURNS date\nAS
'$libdir/orafce','ora"...,
context=PROCESS_UTILITY_QUERY, params=0x0, dest=0xc7ec40 ,
completionTag=0x0) at utility.c:907
#9  0x0058ed9d in execute_sql_string (filename=0x1a8b0a8
"/usr/local/pgsql/share/extension/orafce--3.3.sql",
sql=0x1ae30d8 "/* contrib/orafce--3.2.sql */\n\n-- complain if script
is sourced in psql, rather than via CREATE EXTENSION\n\n\nCREATE FUNCTION
pg_catalog.trunc(value date, fmt text)\nRETURNS date\nAS
'$libdir/orafce','ora"...) at extension.c:746
#10 execute_extension_script (extensionOid=extensionOid@entry=16385,
control=control@entry=0x1a8b7d0,
from_version=from_version@entry=0x0, version=version@entry=0x1a8b8b8
"3.3", requiredSchemas=requiredSchemas@entry=0x0,
schemaName=schemaName@entry=0x1a8b7b0 "public", schemaOid=2200) at
extension.c:906
#11 0x0058fc72 in CreateExtensionInternal (parents=parents@entry=0x0,
stmt=, stmt=)
at extension.c:1498
#12 0x005901d8 in CreateExtension (stmt=stmt@entry=0x1a556d0) at
extension.c:1556
#13 0x006f8379 in ProcessUtilitySlow
(parsetree=parsetree@entry=0x1a556d0,

queryString=queryString@entry=0x1a54c78 "create extension orafce ;",
context=context@entry=PROCESS_UTILITY_TOPLEVEL,
params=params@entry=0x0, completionTag=completionTag@entry=0x7ffc5e408890
"", dest=0x1a55a58) at utility.c:1296
#14 0x006f76bb in standard_ProcessUtility (parsetree=0x1a556d0,
queryString=0x1a54c78 "create extension orafce ;",
context=PROCESS_UTILITY_TOPLEVEL, params=0x0, dest=0x1a55a58,
completionTag=0x7ffc5e408890 "") at utility.c:907
#15 0x006f4ed4 in PortalRunUtility (portal=0x19f7aa8,
utilityStmt=0x1a556d0, isTopLevel=, dest=0x1a55a58,
completionTag=0x7ffc5e408890 "") at pquery.c:1175
#16 0x006f5aa6 in PortalRunMulti (portal=portal@entry=0x19f7aa8,
isTopLevel=isTopLevel@entry=1 '\001',
dest=dest@entry=0x1a55a58, altdest=altdest@entry=0x1a55a58,
completionTag=completionTag@entry=0x7ffc5e408890 "") at pquery.c:1306
#17 0x006f66e6 in PortalRun (portal=portal@entry=0x19f7aa8,
count=count@entry=9223372036854775807,
isTopLevel=isTopLevel@entry=1 '\001', dest=dest@entry=0x1a55a58,
altdest=altdest@entry=0x1a55a58,
completionTag=completionTag@entry=0x7ffc5e408890 "") at pquery.c:813
#18 0x006f401b in exec_simple_query (query_string=0x1a54c78 "create
extension orafce ;") at postgres.c:1094
#19 PostgresMain (argc=, argv=argv@entry=0x19d9590,
dbname=, username=)
at postgres.c:4059
#20 0x0046dbb5 in BackendRun (port=0x19fbc60) at postmaster.c:4258
#21 BackendStartup (port=0x19fbc60) at postmaster.c:3932

This is enforced by sequence of statements REVOKE, GRANT

try to add following lines to hstore--1.3.sql

CREATE VIEW public.dual AS SELECT 'X'::varchar AS dummy;
REVOKE ALL ON public.dual FROM PUBLIC;
GRANT SELECT, REFERENCES ON public.dual TO PUBLIC;

then create extension hstore enforces this error.

When I remove the REVOKE statement - all is working.

Regards

Pavel