I've been looking into this some more without much progress. Is anyone
on this list successfully using modperl, DBD::Oracle, and XML::Parser
on Solaris 2.8 x86?

Are there any known symbol conflicts with Oracle's libclntsh.so and
Expat? Any good alternative perl XML Parsers to Expat?

Thanks, Scott

On Sun, July 22 13:30 -0700, Scott Kister wrote:
> 
> This program core dumps when run under mod_perl on Solaris 2.8 x86.
> 
> #!./perl
> use Oraperl;          # use DBD::Oracle; fails as well
> use XML::Parser;
> my $parser = new XML::Parser;
> $parser->parsestring(''); # fails with valid xml here as well
> 
> It runs fine on Linux and Sparc Solaris. It also works fine from the
> command line, or if I remove the use Oraperl line. I'm using the
> following releases. I had the same problem under apache 1.3.19 and
> mod_perl-1.25, and with perl compiled with and without usemymalloc.
> I also tried Apache with mod_perl as a DSO and statically linked.
> 
> apache 1.3.20
> expat-1.95.1
> mod_perl-1.26
> perl-5.6.1
> DBD-Oracle-1.06
> DBI-1.15
> XML-Parser-2.30
> 
> I searched the web and found a known problem with symbol conflict with
> apache's expat, but I have --disable-rule=EXPAT. I also saw a
> recommendation to use XML-Parser-2.29, which I tried with no success.
> Has anyone here seen this problem or have ideas on how to solve it?
> 
> The gdb backtrace:
> (gdb) bt
> #0  0xdefd3f98 in ?? ()
> #1  0xdfbd7da9 in ?? ()
> #2  0xdfbdeee2 in ?? ()
> #3  0xdfbd31a9 in ?? ()
> #4  0xdf78c6d1 in Perl_pp_entersub ()
>    from /server/local/apache/libexec/libperl.so
> #5  0xdf786f92 in Perl_runops_standard ()
>    from /server/local/apache/libexec/libperl.so
> #6  0xdf7484d6 in S_call_body () from /server/local/apache/libexec/libperl.so
> #7  0xdf74829a in Perl_call_sv () from /server/local/apache/libexec/libperl.so
> #8  0xdf729676 in perl_call_handler ()
>    from /server/local/apache/libexec/libperl.so
> #9  0xdf728ef4 in perl_run_stacked_handlers ()
>    from /server/local/apache/libexec/libperl.so
> #10 0xdf727734 in perl_handler () from /server/local/apache/libexec/libperl.so
> #11 0x80739a5 in ap_invoke_handler ()
> #12 0x8088398 in process_request_internal ()
> #13 0x8088402 in ap_process_request ()
> #14 0x807f2db in child_main ()
> #15 0x807f564 in make_child ()
> #16 0x807f8ec in perform_idle_server_maintenance ()
> #17 0x807fe21 in standalone_main ()
> #18 0x8080460 in main ()
> #19 0x8056adf in _start ()
> 
> I turned on the nontstop debugging. The output from where it seg faults
> is as follows.
> 
>     entering XML::Parser::Expat::parse
>      438:       my $self = shift;
>      439:       my $arg = shift;
>      440:       croak "Parse already in progress (Expat)" if $self->{_State_};
>      441:       $self->{_State_} = 1;
>      442:       my $parser = $self->{Parser};
>      443:       my $ioref;
>      444:       my $result = 0;
>      446:       if (defined $arg) {
>      447:         if (ref($arg) and UNIVERSAL::isa($arg, 'IO::Handle')) {
>      455:           eval {
>      456:             $ioref = *{$arg}{IO};
>      456:             $ioref = *{$arg}{IO};
> -- end of output, seg fault here
> 
> XML/Parser.pm
> 455  sub Char {
> 456    my $expat = shift;
> 457    my $text = shift;
> 458    my $class = "${$expat}{Pkg}::Characters";
> 459    my $clist = $expat->{Curlist};
> 
> 
> perl configure options:
>  -Dprefix=/server/local -Uusemymalloc -Ubincompat5005 -des
> 
> % perl -V
> Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
>   Platform:
>     osname=solaris, osvers=2.8, archname=i86pc-solaris
>     uname='sunos x86-b 5.8 generic_108529-06 i86pc i386 i86pc '
>     config_args='-Dprefix=/server/local -Uinstallusrbinperl -Ubincompat5005 -des'
>     hint=recommended, useposix=true, d_sigaction=define
>     usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
>     useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
>     use64bitint=undef use64bitall=undef uselongdouble=undef
>   Compiler:
>     cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE 
>-D_FILE_OFFSET_BITS=64',
>     optimize='-O',
>     cppflags='-fno-strict-aliasing -I/usr/local/include'
>     ccversion='', gccversion='2.95.2 19991024 (release)', gccosandvers='solaris2.8'
>     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, usemymalloc=y, prototype=define
>   Linker and Libraries:
>     ld='cc', ldflags =' -L/usr/local/lib '
>     libpth=/usr/local/lib /usr/lib /usr/ccs/lib
>     libs=-lsocket -lnsl -ldl -lm -lc
>     perllibs=-lsocket -lnsl -ldl -lm -lc
>     libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
>     cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'
> 
> 
> Characteristics of this binary (from libperl): 
>   Compile-time options: USE_LARGE_FILES
>   Built under solaris
>   Compiled at Jul 20 2001 22:45:47
>   @INC:
>     /server/local/lib/perl5/5.6.1/i86pc-solaris
>     /server/local/lib/perl5/5.6.1
>     /server/local/lib/perl5/site_perl/5.6.1/i86pc-solaris
>     /server/local/lib/perl5/site_perl/5.6.1
>     /server/local/lib/perl5/site_perl
>     .

Reply via email to