Thread: plperl problem

plperl problem

From
Pavel Stehule
Date:
Hello

    When I try add "use" cmd into my code, I get following error:

ERROR:  creation of function failed: 'require' trapped by operation mask
at (eval 2) line 1.

    Code without use command works fine.

work=# select version();
                                                  version
------------------------------------------------------------------------------------------------------------
 PostgreSQL 7.5devel on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.3.2
20031022 (Red Hat Linux 3.3.2-1)

[postgres@triss root]$ perl -V
Summary of my perl5 (revision 5.0 version 8 subversion 3) configuration:
  Platform:
    osname=linux, osvers=2.4.22-1.2115.nptl, archname=i686-linux
    uname='linux triss 2.4.22-1.2115.nptl #1 wed oct 29 15:42:51 est 2003
i686 i686 i386 gnulinux '
    config_args=''
    hint=previous, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef
usemultiplicity=undef
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
    optimize='-O3',
    cppflags='-fno-strict-aliasing -I/usr/local/include
-I/usr/include/gdbm -fno-strict-aliasing -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm
-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm'
    ccversion='', gccversion='3.3.2 20031022 (Red Hat Linux 3.3.2-1)',
gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libperl.a
    gnulibc_version='2.3.2'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic
-Wl,-rpath,/usr/local/lib/perl5/5.8.3/i686-linux/CORE'
    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under linux
  Compiled at Feb  5 2004 15:11:03
  @INC:
    /usr/local/lib/perl5/5.8.3/i686-linux
    /usr/local/lib/perl5/5.8.3
    /usr/local/lib/perl5/site_perl/5.8.3/i686-linux
    /usr/local/lib/perl5/site_perl/5.8.3
    /usr/local/lib/perl5/site_perl

What I have to do?

Regards
Pavel Stehule

Re: plperl problem

From
Hans-Jürgen Schönig
Date:
I guess you are using pl/perl and not pl/perlU.
Using untrusted modules in trusted functions is not a good idea.
I guess you will need pl/perlU.
Cheers,
    Hans



Pavel Stehule wrote:
> Hello
>
>     When I try add "use" cmd into my code, I get following error:
>
> ERROR:  creation of function failed: 'require' trapped by operation mask
> at (eval 2) line 1.
>
>     Code without use command works fine.
>
> work=# select version();
>                                                   version
> ------------------------------------------------------------------------------------------------------------
>  PostgreSQL 7.5devel on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.3.2
> 20031022 (Red Hat Linux 3.3.2-1)
>
> [postgres@triss root]$ perl -V
> Summary of my perl5 (revision 5.0 version 8 subversion 3) configuration:
>   Platform:
>     osname=linux, osvers=2.4.22-1.2115.nptl, archname=i686-linux
>     uname='linux triss 2.4.22-1.2115.nptl #1 wed oct 29 15:42:51 est 2003
> i686 i686 i386 gnulinux '
>     config_args=''
>     hint=previous, useposix=true, d_sigaction=define
>     usethreads=undef use5005threads=undef useithreads=undef
> usemultiplicity=undef
>     useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
>     use64bitint=undef use64bitall=undef uselongdouble=undef
>     usemymalloc=n, bincompat5005=undef
>   Compiler:
>     cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include
> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
>     optimize='-O3',
>     cppflags='-fno-strict-aliasing -I/usr/local/include
> -I/usr/include/gdbm -fno-strict-aliasing -I/usr/local/include
> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm
> -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm'
>     ccversion='', gccversion='3.3.2 20031022 (Red Hat Linux 3.3.2-1)',
> gccosandvers=''
>     intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
>     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
>     ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
> lseeksize=8
>     alignbytes=4, prototype=define
>   Linker and Libraries:
>     ld='cc', ldflags =' -L/usr/local/lib'
>     libpth=/usr/local/lib /lib /usr/lib
>     libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
>     perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
>     libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libperl.a
>     gnulibc_version='2.3.2'
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic
> -Wl,-rpath,/usr/local/lib/perl5/5.8.3/i686-linux/CORE'
>     cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'
>
>
> Characteristics of this binary (from libperl):
>   Compile-time options: USE_LARGE_FILES
>   Built under linux
>   Compiled at Feb  5 2004 15:11:03
>   @INC:
>     /usr/local/lib/perl5/5.8.3/i686-linux
>     /usr/local/lib/perl5/5.8.3
>     /usr/local/lib/perl5/site_perl/5.8.3/i686-linux
>     /usr/local/lib/perl5/site_perl/5.8.3
>     /usr/local/lib/perl5/site_perl
>
> What I have to do?
>
> Regards
> Pavel Stehule
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faqs/FAQ.html


--
Cybertec Geschwinde u Schoenig
Schoengrabern 134, A-2020 Hollabrunn, Austria
Tel: +43/2952/30706 or +43/664/233 90 75
www.cybertec.at, www.postgresql.at, kernel.cybertec.at