>>>>> On Wed, 12 Jun 2002 23:45:41 +0200, [EMAIL PROTECTED] (Andreas J. Koenig) 
>said:

  > Currently I have a testcase that is still 7300 lines of perl code for
  > the server (after all these are in one file) but only 50 lines for the
  > client. I hope to cut that down to a reasonable size tomorrow.

I fear I have to give up on this, I cannot cut the test case below
2800 lines. I cannot make it database-independent either. Whatever I
cut out, the SEGV goes away.  :-(

I have switched to blead@17207 (apache is 1.3.24, mod_perl is 1.27)
and this is the stack trace today. The line numbers are again wrong
and I have no idea why. Please take another *sharp* look. If this bug
cannot be fixed, I cannot upgrade PAUSE to 5.8.0 (unless I rename it
to PAUSEGV :-)

Program received signal SIGSEGV, Segmentation fault.
0x400ed761 in _IO_fflush (fp=0x877f1e0) at iofflush.c:43
43 iofflush.c: No such file or directory.
(gdb) bt
#0  0x400ed761 in _IO_fflush (fp=0x877f1e0) at iofflush.c:43
#1  0x8205fea in PerlIOStdio_flush (my_perl=0x82f4258, f=0x82fb298)
    at perlio.c:2738
#2  0x8203fde in Perl_PerlIO_flush (my_perl=0x82f4258, f=0x82fb298)
    at perlio.c:1459
#3  0x82040a8 in Perl_PerlIO_flush (my_perl=0x82f4258, f=0x82fb298)
    at perlio.c:1487
#4  0x8173e8f in Perl_my_popen (my_perl=0x82f4258, cmd=0x88b8fc1 "-", 
    mode=0xbffff524 "w") at util.c:2080
#5  0x81e3297 in Perl_do_openn (my_perl=0x82f4258, gv=0x88c5f34, 
    name=0x88b8fc1 "-", len=1, as_raw=0, rawmode=0, rawperm=0, 
    supplied_fp=0x0, svp=0x84f7098, num_svs=0) at doio.c:282
#6  0x81cbda3 in Perl_pp_open (my_perl=0x82f4258) at pp_sys.c:542
#7  0x816eb43 in Perl_runops_debug (my_perl=0x82f4258) at dump.c:1398
#8  0x81174a3 in S_call_body (my_perl=0x82f4258, myop=0xbffff758, is_eval=0)
    at perl.c:2044
#9  0x8117003 in Perl_call_sv (my_perl=0x82f4258, sv=0x8387470, flags=4)
    at perl.c:1962
#10 0x809da38 in perl_call_handler (sv=0x8387470, r=0x87869ac, args=0x0)
    at mod_perl.c:1658
#11 0x809cbc4 in perl_run_stacked_handlers (hook=0x828e399 "PerlHandler", 
    r=0x87869ac, handlers=0x83873ec) at mod_perl.c:1371
#12 0x809a637 in perl_handler (r=0x87869ac) at mod_perl.c:897
#13 0x80e6379 in ap_invoke_handler () at eval.c:88
#14 0x80fbbdf in process_request_internal () at eval.c:88
#15 0x80fbc4a in ap_process_request () at eval.c:88
#16 0x80f2897 in child_main () at eval.c:88
#17 0x80f2a55 in make_child () at eval.c:88
#18 0x80f2bd6 in startup_children () at eval.c:88
#19 0x80f326d in standalone_main () at eval.c:88
#20 0x80f3acc in main () at eval.c:88
#21 0x400a475d in __libc_start_main (main=0x80f3738 <main>, argc=4, 
    ubp_av=0xbffffae4, init=0x807a628 <_init>, fini=0x8286704 <_fini>, 
    rtld_fini=0x4000b8f4 <_dl_fini>, stack_end=0xbffffadc)
    at ../sysdeps/generic/libc-start.c:129

Loaded modules of the application are quite a lot:

  Apache Apache::Connection Apache::Constants Apache::Constants::Exports
  Apache::HeavyCGI Apache::HeavyCGI::Date Apache::HeavyCGI::Exception
  Apache::HeavyCGI::ExePlan Apache::HeavyCGI::Layout Apache::Request
  Apache::Server Apache::Status Apache::Symbol Apache::Table Apache::URI
  AutoLoader B Carp Class::Singleton Compress::Zlib Config Cwd
  DBD::mysql DBI Data::Dumper Devel::Symdump DirHandle DynaLoader Encode
  Encode::Alias Encode::Config Encode::Encoding Exporter Exporter::Heavy
  ExtUtils::Manifest Fcntl File::Basename File::Copy File::Find
  File::Spec File::Spec::Unix HTML::Entities HTML::Parser HTTP::Date IO
  IO::File IO::Handle IO::Seekable List::Util Mail::Mailer
  Mail::Mailer::rfc822 Mail::Mailer::sendmail Mail::Send Scalar::Util
  SelectSaver String::Random Symbol Text::Tabs Text::Wrap Time::HiRes
  Time::Local URI URI::Escape URI::URL URI::WithBase URI::_generic
  URI::_query URI::_server URI::_userpass URI::ftp Unicode::String
  XML::Parser XML::Parser::Expat XSLoader base bytes constant fields
  integer lib mod_perl overload pause_1999::authensegv
  pause_1999::configsegv re strict utf8 vars warnings warnings::register

Most of the modules are not involved in any action, most of the
testscript is unused code. The test script only does the following:

1. Authentication via DBI (mysql)
2. Receive an uploaded file via Apache::Request
3. Send mail via Mail::Mailer (sendmail)

Action must be repeated about 6-8 times, only then the SEGV is reached.


-- 
andreas

Reply via email to