Title: RE: Core file (debugging info turned on/stack trace)

Well I did a little more investigation - it seems that we are dieing in Expat.pm line 451. The offending Function is:

sub parse {
  my $self = shift;
  my $arg = shift;
  croak "Parse already in progress (Expat)" if $self->{_State_};
  $self->{_State_} = 1;
  my $parser = $self->{Parser};
  my $ioref;
  my $result = 0;

  if (defined $arg) {
    if (ref($arg) and UNIVERSAL::isa($arg, 'IO::Handler')) {
      $ioref = $arg;
    } else {
      eval {
        $ioref = *{$arg}{IO};  # *** <= This is where we are losing it ***
      };
      undef $@;
    }
  }

  if (defined($ioref)) {
    my $delim = $self->{Stream_Delimiter};
    my $prev_rs;

    $prev_rs = ref($ioref)->input_record_separator("\n$delim\n")
      if defined($delim);

    $result = ParseStream($parser, $ioref, $delim);

    ref($ioref)->input_record_separator($prev_rs)
      if defined($delim);
  } else {
    $result = ParseString($parser, $arg);
  }

  $self->{_State_} = 2;
  $result or croak $self->{ErrorMessage};
}

As I recall, Doug, you helped me patch part of HTML::Mason dealing with typeglobs under an eval ... I believe that * is a typeglob in perl yes?


-----Original Message-----
From: Shane Adams
Sent: Tuesday, September 26, 2000 4:16 PM
To: [EMAIL PROTECTED]
Subject: Core file (debugging info turned on/stack trace)


Apache 1.3.12, mod_perl 1.24, Perl 5.6.0, Redhat 6.1
...
Program terminated with signal 11, Segmentation fault.
...
0  0x814abd4 in Perl_sv_setsv (dstr=0x8d34514, sstr=0x84afba4) at sv.c:2774
#1  0x813b6b3 in Perl_pp_sassign () at pp_hot.c:117
#2  0x813aeda in Perl_runops_debug () at run.c:56
#3  0x80e4b2f in S_call_body (myop=0x7ffff2f0, is_eval=0) at perl.c:1761
#4  0x80e4415 in perl_call_sv (sv=0x8845bd4, flags=2) at perl.c:1638
#5  0x812a892 in Perl_vdie (
    pat=0x81d46a0 "Can't use string (\"%.32s\") as %s ref while \"strict refs\" in use",
    args=0x7ffff36c) at util.c:1532
#6  0x812aa71 in Perl_die (
    pat=0x81d46a0 "Can't use string (\"%.32s\") as %s ref while \"strict refs\" in use")
    at util.c:1567
#7  0x8155127 in Perl_pp_rv2gv () at pp.c:249
#8  0x813aeda in Perl_runops_debug () at run.c:56
#9  0x80e4b2f in S_call_body (myop=0x7ffff4b8, is_eval=0) at perl.c:1761
#10 0x80e4780 in perl_call_sv (sv=0x82e7bcc, flags=4) at perl.c:1677
#11 0x8075aac in perl_call_handler (sv=0x82e7bcc, r=0x88ac844, args=0x0)
    at mod_perl.c:1643
#12 0x8074fd8 in perl_run_stacked_handlers (hook=0x81ac879 "PerlHandler", r=0x88ac844,
    handlers=0x876f72c) at mod_perl.c:1362
#13 0x80726a8 in perl_handler (r=0x88ac844) at mod_perl.c:905
#14 0x80a0913 in ap_invoke_handler ()
#15 0x80b3f29 in process_request_internal ()
#16 0x80b3f8c in ap_process_request ()
#17 0x80ab82e in child_main ()
#18 0x80aba6c in make_child ()
#19 0x80abde6 in perform_idle_server_maintenance ()
#20 0x80ac315 in standalone_main ()
#21 0x80ac8d3 in main ()


So far I've applied a mason related patch thanks to Doug, and a path on perl itself that was listed on this list.  Still getting faults however, and they are frequent enough for me to worry about in a production scenario.  We are using the HTML::Mason package if it helps any.

Reply via email to