[ANNOUNCE] Apache::AuthCookieNTLM 0.05
> On Fri, Nov 07, 2003 at 06:11:48PM +0100, Stefano Ciancio wrote: > > First of all a question. The AuthenNTLM module setted an env variable > > REMOTE_USER to domain\\username value. The uploaded file Apache-AuthCookieNTLM-0.05.tar.gz has entered CPAN as file: $CPAN/authors/id/L/LL/LLAP/Apache-AuthCookieNTLM-0.05.tar.gz size: 4590 bytes md5: e902cc73ff25c384fd3e8e1b11d96702 Available NOW from: http://leo.cuckoo.org/projects/ This version now defaults to setting the REMOTE_USER value as userdomain\\username this will be the case as long as 'username' and 'userdomain' are set in choose_cookie_values(). Enjoy. Leo -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: apache2 could not start
Thanks Randy, It was caused by the permission which should not happen. I just changed OS from window 2000 to XP and installed the apache2 but the logs directory was readable only by unknow reason. It works fine now. Thanks again, Willy Randy Kobes <[EMAIL PROTECTED]To: [EMAIL PROTECTED] innipeg.ca> cc: [EMAIL PROTECTED] Subject: Re: apache2 could not start 11/07/2003 05:35 PM On Fri, 7 Nov 2003 [EMAIL PROTECTED] wrote: > Randy, > > I downloaded the binary bundle of Apache2 with modperl > from uwinnipeg which was fine for Window 2000 but doesn't > work for Window XP. > > Do you have any idea what I should do to fix the problem such as > > The Apache2 service terminated with service-specific error 1 (0xl). The > more detailed information is attached as below. > > Thanks, > > Willy I'm afraid the error message is a bit too general ... Does this error come up when starting the service? Or do you have to make a request to invoke it? Any request? Did you install the service using C:\Apache2\bin> Apache -n Apache2 -k install If so, does starting the service as C:\Apache2\bin> Apache -n Apache2 -k start work with just a vanilla Apache (ie, with mod_perl disabled)? Might there be another Apache installation on your system (or, shudder, another brand of web server) that might be running off of the same port and causing a conflict? -- best regards, randy -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: xml and mod_perl
On Thu, 06 Nov 2003 17:36:38 -0700, Dustin Whitney wrote: > I am using Mason. Here are some lines from my httpd.conf file that are > probably relevant: > > > Alias /perl/ /var/www/perl/ > PerlSetVar MasonAllowGlobals $swit_user PerlInitHandler "Apache::StatINC" > > > SetHandler perl-script > PerlHandler Apache::Registry > Options +ExecCGI > > > >SetHandler perl-script > PerlHandler HTML::Mason::ApacheHandler > > > SetHandler cgi-script > > I also use Mason, with success, try: SetHandler default-handler -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re[2]: strange behavor
Hello Stas, Thursday, November 06, 2003, 4:11:41 PM, you wrote: SB> Hmm, I haven't see such a case before. Is it possible that print_login is SB> defined in some package as well, and when you do an import->(:all) it gets SB> imported overriding the local sub? No, there is no print_login in any module I use. SB> We need to see a simple test case to try to reproduce the problem. You should SB> be able to remove all irrelevant code from these two scripts (like all the SB> used modules) and still see the problem. If you don't then the problem comes SB> from one of the used modules. But how can I emulate on-line activity? This error occurs only on-line. And additional, I found that my site get freezed after about 2 days running, all http servers running, but pages cannot be opened. Is there some tools to determine the reason? --- Sincerely yours, Andrey A. Kudrin, -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re[4]: strange behavor
Hello Perrin, Friday, November 07, 2003, 12:23:59 AM, you wrote: PH> There is nothing in your sample code here that would cause one sub to be PH> called in place of another. How do you know that the other print_login PH> is being called? Because I see the result page. All print_login prints different pages. PH> Is it because of CGI parameters that get printed? You PH> might be having a problem with accidentally caching your CGI object PH> somewhere. but why it's cached under PerlRun? PH> Can you show us the print_login subs? there is nothing extraordinary, just few prints and nothing else. --- Sincerely yours, Andrey A. Kudrin, RussianCourier, http://www.russiancourier.com mailto:[EMAIL PROTECTED] -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
[MP1] Apache segfault after serving request
After serving up requests normally for some time, we get the following line in our error_log: [Mon Nov 10 13:44:31 2003] [notice] child pid 24121 exit signal Segmentation fault (11) There aren't any other entries in the error log for the requests. We think that this is happening during the normal termination of the child process (after serving MaxRequestsPerChild requests, or exceeding GTopLimit limits). The segfaults were happening before we added the GTopLimit configuration. Has anybody seen this behavior before? I can send more information if needed. Thanks Useful information: perl -V reports: Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration: Platform: osname=linux, osvers=2.4.20-8smp, archname=i686-linux uname='linux ooghij 2.4.20-8smp #1 smp thu mar 13 17:45:54 est 2003 i686 i686 i386 gnulinux ' config_args='' hint=recommended, 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 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='-O3', cppflags='-fno-strict-aliasing -I/usr/include/gdbm' ccversion='', gccversion='3.2.2 20030222 (Red Hat Linux 3.2.2-5)', 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 -lc -lcrypt -lutil perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil libc=/lib/libc-2.3.2.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.3.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic' 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 Jul 31 2003 13:36:56 @INC: /usr/local/lib/perl5/5.8.0/i686-linux /usr/local/lib/perl5/5.8.0 /usr/local/lib/perl5/site_perl/5.8.0/i686-linux /usr/local/lib/perl5/site_perl/5.8.0 /usr/local/lib/perl5/site_perl . The version of mod perl we are running is 1.28, with apache 1.28. We built mod_perl with: perl Makefile.PL \ APACHE_SRC=../apache_1.3.28/src \ APACHE_PREFIX=/usr/skynet \ DO_HTTPD=1 \ USE_APACI=1 \ EVERYTHING=1 \ APACI_ARGS='--disable-rule=EXPAT --disable-module=env --disable-module=negotiation --disable-module=status --disable-module=include --disable-module=autoindex --disable-module=asis --disable-module=imap --disable-module=actions --disable-module=userdir --disable-module=setenvif' The relevant portion of the httpd.conf file: ServerAdmin [EMAIL PROTECTED] DocumentRoot /usr/skynet/htdocs ServerName skynet.whapps.com Alias /icons/ "/usr/skynet/htdocs" PerlTransHandlerSkynet::TransHandler ErrorDocument 401 /authfail.html AuthName "Password Protected Area" AuthType Basic PerlAuthenHandler Skynet::AuthenHandler require valid-user PerlSetVar Apache::GTopLimit::DEBUG 1 PerlFixupHandler Apache::GTopLimit PerlHandler Skynet::Handler The startup.pl file: #!/usr/bin/perl use strict; use Skynet::Util; use Apache::GTopLimit; use Skynet::Handler; use Apache::DBI; # Control the life based on memory size # in KB, so this is ~10MB $Apache::GTopLimit::MAX_PROCESS_SIZE = 2; # Make sure we are in a sane environment. $ENV{MOD_PERL} or die "not running under mod_perl!"; # Initialize the database connections for each child #$Apache::DBI::DEBUG = "3"; my $Dbh=Apache::DBI->connect_on_init("dbi:mysql:dbname=skynet;host=x.com;","user","pass", {AutoCommit => 1, RaiseError => 1}); 1; A backtrace when the segfault occurs: GNU gdb Red Hat Linux (5.3post-0.20021129.18rh) This GDB was configured as "i386-redhat-linux-gnu"... (gdb) run -X -f /usr/skynet/conf/httpd.conf Starting program: /usr/skynet/bin/httpd -X -f /usr/skynet/conf/httpd.conf Program received signal SIGSEGV, Segmentation fault. 0x0807698b in hvrv2table (rv=0x0) at perl_util.c:101 101 return (table *)SvIV((SV*)SvRV(rv)); (gdb) bt #0 0x0807698b in hvrv2table (rv=0x0) at perl_util.c:101 #1 0x08088995 in XS_Apache__Table_DESTROY (cv=0x81ae5dc) at Table.c:149 #2 0x0810b6c9 in Perl_pp_entersub () #3 0x080ba314 in S_call_body () #4 0x080ba0ee in Perl_call_sv () #5 0x08112b2b in Perl_sv_clear () #6 0x08112d53 in Perl_sv_free () #7 0x08117995 in Perl_sv_clean_objs () #8 0x080b89f8 in perl_destruct () #9 0x0806bd6c in perl_shutdown (s=0x819e1
Re: Re[4]: strange behavor
On Mon, 2003-11-10 at 14:12, Andrey A. Kudrin wrote: > PH> There is nothing in your sample code here that would cause one sub to be > PH> called in place of another. How do you know that the other print_login > PH> is being called? > > Because I see the result page. All print_login prints different pages. Does the output you send depend on something external, like a parameter from CGI.pm? > PH> Is it because of CGI parameters that get printed? You > PH> might be having a problem with accidentally caching your CGI object > PH> somewhere. > > but why it's cached under PerlRun? You could be accidentally creating a closure. Also, keep in mind that PerlRun only clears globals within the main script. If you use any modules that have globals in their own namespaces, those do not get cleared by PerlRun. > PH> Can you show us the print_login subs? > > there is nothing extraordinary, just few prints and nothing else. Well, the code you've shown so far doesn't seem like it could produce the results you're talking about, so we really need you to show us a test case to give you further help. If you can reduce your script down to a very simple one that demonstrates the problem and post it here, we can probably see what's wrong. - Perrin -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: [mp1] freezing proccesses
> And additional, I found that my site get freezed after about 2 days > running, all http servers running, but pages cannot be opened. Is > there some tools to determine the reason? [in the future please ask unrelated questions in separate threads to keep the threads focused. I did the separation for you this time. ] See: http://perl.apache.org/docs/1.0/guide/debug.html#Hanging_Processes__Detection_and_Diagnostics __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: mp2 - make test - apr/table...FAILED tests 20-21
I tried the patch and got the same result: apr/table..FAILED tests 20-21 Failed 2/21 tests, 90.48% okay FWIW, I was able to build without error on a different machine (same architecture and OS - redhat 8.0 on intel) - the machine where it fails is a dual-processor, but I cannot see what difference that would make. Matisse Enzer wrote: Anyone have some suggestions for me? -8<-- Start Bug Report 8<-- 1. Problem Description: apr/table..FAILED tests 20-21 Please apply the patch at the bottom and send the ouput of: t/TEST -v apr/table I think this has to do with 'if (HAVE_APACHE_2_0_47) {'. May be the new api compress didn't end up in 2.0.47. Care to try to install 2.0.48 and give it another test? --- t/response/TestAPR/table.pm 22 Aug 2003 19:15:08 - 1.8 +++ t/response/TestAPR/table.pm 7 Nov 2003 20:20:40 - @@ -4,6 +4,7 @@ use warnings FATAL => 'all'; use Apache::Test; +use Apache::TestUtil; use APR::Table (); @@ -127,8 +128,12 @@ $overlay->compress(APR::OVERLAP_TABLES_MERGE); # $add first, then $base -ok $overlay->get('foo') eq 'three, one, two'; -ok $overlay->get('bar') eq 'beer'; +ok t_cmp($overlay->get('foo'), + 'three, one, two', + "$overlay->compress"); +ok t_cmp($overlay->get('bar'), + 'beer', + "\$overlay->compress"); } Apache::OK; __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- -- Matisse Enzer Doodlelab Inc. 415-925-5294 ext. 212 (office) 415-225-6703 (mobile) -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: strange behavor
Andrey A. Kudrin wrote: Hello Perrin, Friday, November 07, 2003, 12:23:59 AM, you wrote: PH> There is nothing in your sample code here that would cause one sub to be PH> called in place of another. How do you know that the other print_login PH> is being called? Because I see the result page. All print_login prints different pages. Can you come up with two simple test scripts that you can reproduce the problem with? We fail to guess a possible reason for this behavior. We need to be able to reproduce the problem to analyze it. PH> Is it because of CGI parameters that get printed? You PH> might be having a problem with accidentally caching your CGI object PH> somewhere. but why it's cached under PerlRun? PerlRun doesn't cache scripts it compiles at all. Registry does. PH> Can you show us the print_login subs? there is nothing extraordinary, just few prints and nothing else. see above. > But how can I emulate on-line activity? This error occurs only > on-line. You don't need to emulate it. Just run it online. You can use Apache::Test to setup a test if you really want to. But if you give us 2 scripts and the instructions how to reproduce the problem we will do that. (e.g., request script 1 once and then script 2, and then ...). Also try to reproduce the problem while running under 'httpd -X'. __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: mp2 - make test - apr/table...FAILED tests 20-21
Matisse Enzer wrote: I tried the patch and got the same result: apr/table..FAILED tests 20-21 Failed 2/21 tests, 90.48% okay thanks, but you didn't do what I've asked you for: >> Please apply the patch at the bottom and send the ouput of: >> >> t/TEST -v apr/table Can we see that output? FWIW, I was able to build without error on a different machine (same architecture and OS - redhat 8.0 on intel) - the machine where it fails is a dual-processor, but I cannot see what difference that would make. Interesting. SMP can definitely reveal bugs with threads, but I don't think this is related. __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: mp2 - make test - apr/table...FAILED tests 20-21
Here'a line from t/logs/error_log /usr/local/apache2.0.47/bin/httpd: relocation error: /usr/local/src/apache/mod_perl-1.99_10/blib/arch/auto/APR/Table/Table.so: undefined symbol: apr_table_compress And here is the output of t/TEST -v apr/table [EMAIL PROTECTED] mod_perl-1.99_10]# t/TEST -v apr/table *** setting ulimit to allow core files ulimit -c unlimited; t/TEST -v 'apr/table' *** root mode: changing the files ownership to 'nobody' (99:99) *** sudo -u '#99' /usr/bin/perl -e 'print -r "/usr/local/src/apache/mod_perl-1.99_10/t" && -w _ && -x _ ? "OK" : "NOK"' *** result: OK /usr/local/apache2.0.47/bin/httpd -d /usr/local/src/apache/mod_perl-1.99_10/t -f /usr/local/src/apache/mod_perl-1.99_10/t/conf/httpd.conf -DAPACHE2 -DPERL_USEITHREADS using Apache/2.0.47 (prefork MPM) waiting for server to start: .[Mon Nov 10 11:08:56 2003] [info] 22 Apache:: modules loaded [Mon Nov 10 11:08:56 2003] [info] 5 APR:: modules loaded [Mon Nov 10 11:08:56 2003] [info] base server + 10 vhosts ready to run tests .. waiting for server to start: ok (waited 2 secs) server localhost.localdomain:8529 started server localhost.localdomain:8530 listening (TestProtocol::echo) server localhost.localdomain:8531 listening (TestProtocol::echo_filter) server localhost.localdomain:8532 listening (TestPreConnection::note) server localhost.localdomain:8533 listening (TestHooks::stacked_handlers2) server localhost.localdomain:8534 listening (TestFilter::in_str_msg) server localhost.localdomain:8535 listening (TestFilter::both_str_con_add) server localhost.localdomain:8536 listening (TestFilter::in_bbs_msg) server localhost.localdomain:8537 listening (TestDirective::perlmodule) server localhost.localdomain:8538 listening (TestDirective::perlrequire) server localhost.localdomain:8539 listening (TestPerl::ithreads) server localhost.localdomain:8540 listening (TestDirective::perlloadmodule3) server localhost.localdomain:8541 listening (TestDirective::perlloadmodule4) server localhost.localdomain:8542 listening (TestDirective::perlloadmodule5) server localhost.localdomain:8543 listening (TestDirective::perlloadmodule6) apr/table1..21 # Running under perl version 5.008 for linux # Current time local: Mon Nov 10 11:08:57 2003 # Current time GMT: Mon Nov 10 19:08:57 2003 # Using Test.pm version 1.23 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 FAILED tests 20-21 Failed 2/21 tests, 90.48% okay Failed Test Stat Wstat Total Fail Failed List of Failed --- apr/table.t 212 9.52% 20-21 *** server localhost.localdomain:8529 shutdown *** port 8529 still in use... ...!!! server was shutdown but port 8529 is still in use, please shutdown the service using this port or select another port for the tests !!! port 8529 is in use, cannot determine server pid to shutdown !!! error running tests (please examine t/logs/error_log) [EMAIL PROTECTED] mod_perl-1.99_10]# Matisse Enzer wrote: Anyone have some suggestions for me? -8<-- Start Bug Report 8<-- 1. Problem Description: apr/table..FAILED tests 20-21 Please apply the patch at the bottom and send the ouput of: t/TEST -v apr/table I think this has to do with 'if (HAVE_APACHE_2_0_47) {'. May be the new api compress didn't end up in 2.0.47. Care to try to install 2.0.48 and give it another test? --- t/response/TestAPR/table.pm 22 Aug 2003 19:15:08 - 1.8 +++ t/response/TestAPR/table.pm 7 Nov 2003 20:20:40 - @@ -4,6 +4,7 @@ use warnings FATAL => 'all'; use Apache::Test; +use Apache::TestUtil; use APR::Table (); @@ -127,8 +128,12 @@ $overlay->compress(APR::OVERLAP_TABLES_MERGE); # $add first, then $base -ok $overlay->get('foo') eq 'three, one, two'; -ok $overlay->get('bar') eq 'beer'; +ok t_cmp($overlay->get('foo'), + 'three, one, two', + "$overlay->compress"); +ok t_cmp($overlay->get('bar'), + 'beer', + "\$overlay->compress"); } Apache::OK; __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- -- Matisse Enzer Doodlelab Inc. 415-925-5294 ext. 212 (office) 415-225-6703 (mobile) -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: mp2 - make test - apr/table...FAILED tests 20-21
Matisse Enzer wrote: I tried the patch and got the same result: apr/table..FAILED tests 20-21 Failed 2/21 tests, 90.48% okay yes, but please run with verbose mode on so we can see the output $ t/TEST t/apr/table.t -v FWIW, I was able to build without error on a different machine (same architecture and OS - redhat 8.0 on intel) - the machine where it fails is a dual-processor, but I cannot see what difference that would make. it might. I had originally coded those two tests with sort, until I was told that insertion order in apache tables is guaranteed. if you get the same basic results from the test but in a different order, it might have something to do with the underlying table implementation, which could have architecture dependencies. if the results are totally random, though, I have no idea :) anyway, the output would be much appreciated. --Geoff -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: [MP1] Apache segfault after serving request
Marc Slagle wrote: After serving up requests normally for some time, we get the following line in our error_log: [Mon Nov 10 13:44:31 2003] [notice] child pid 24121 exit signal Segmentation fault (11) There aren't any other entries in the error log for the requests. We think that this is happening during the normal termination of the child process (after serving MaxRequestsPerChild requests, or exceeding GTopLimit limits). The segfaults were happening before we added the GTopLimit configuration. [...] A backtrace when the segfault occurs: GNU gdb Red Hat Linux (5.3post-0.20021129.18rh) This GDB was configured as "i386-redhat-linux-gnu"... (gdb) run -X -f /usr/skynet/conf/httpd.conf Starting program: /usr/skynet/bin/httpd -X -f /usr/skynet/conf/httpd.conf Program received signal SIGSEGV, Segmentation fault. 0x0807698b in hvrv2table (rv=0x0) at perl_util.c:101 101 return (table *)SvIV((SV*)SvRV(rv)); (gdb) bt #0 0x0807698b in hvrv2table (rv=0x0) at perl_util.c:101 #1 0x08088995 in XS_Apache__Table_DESTROY (cv=0x81ae5dc) at Table.c:149 Thanks for the detailed report, Marc Please try this patch: Index: src/modules/perl/Table.xs === RCS file: /home/cvs/modperl/src/modules/perl/Table.xs,v retrieving revision 1.10 diff -u -r1.10 Table.xs --- src/modules/perl/Table.xs 23 May 2000 15:56:12 - 1.10 +++ src/modules/perl/Table.xs 10 Nov 2003 19:46:55 - @@ -114,9 +114,10 @@ Apache__Table tab; CODE: -tab = (Apache__Table)hvrv2table(self); -if(SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV) +if(SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV) { +tab = (Apache__Table)hvrv2table(self); safefree(tab); +} void FETCH(self, key) __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: mp2 - make test - apr/table...FAILED tests 20-21
Matisse Enzer wrote: Here'a line from t/logs/error_log /usr/local/apache2.0.47/bin/httpd: relocation error: /usr/local/src/apache/mod_perl-1.99_10/blib/arch/auto/APR/Table/Table.so: undefined symbol: apr_table_compress That's the problem. Thanks for providing this entry. Please do: % ldd blib/arch/auto/APR/APR.so | grep apr- and then take the path that you get and do % nm /path/to/libapr-0.so.0 | grep table_compress e.g. on my machine it's: % ldd blib/arch/Apache2/auto/APR/APR.so | grep apr- libapr-0.so.0 => /home/stas/httpd/worker/lib/libapr-0.so.0 (0x40004000) % nm /home/stas/httpd/worker/lib/libapr-0.so.0 | grep table_compress d8b0 T apr_table_compress Chances are that it uses an old libapr, which it finds instead of the newer one coming with Apache 2.0.48. So you may need to nuke the old one. (same for libaprutil-0.so.0) __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: mp2 - make test - apr/table...FAILED tests 20-21
Thank you. I got: [EMAIL PROTECTED] mod_perl-1.99_10]# ldd blib/arch/auto/APR/APR.so | grep apr-libapr-0.so.0 => /usr/local/apache2.0.47/lib/libapr-0.so.0 (0x40003000) [EMAIL PROTECTED] mod_perl-1.99_10]# nm /usr/local/apache2.0.47/lib/libapr-0.so.0 | grep table_compress d010 T apr_table_compress So, when you say "nuke the old one" do you mean remove /usr/local/apache2.0.47/lib/libapr-0.so.0 ? Matisse Enzer wrote: Here'a line from t/logs/error_log /usr/local/apache2.0.47/bin/httpd: relocation error: /usr/local/src/apache/mod_perl-1.99_10/blib/arch/auto/APR/Table/Table.so: undefined symbol: apr_table_compress That's the problem. Thanks for providing this entry. Please do: % ldd blib/arch/auto/APR/APR.so | grep apr- and then take the path that you get and do % nm /path/to/libapr-0.so.0 | grep table_compress e.g. on my machine it's: % ldd blib/arch/Apache2/auto/APR/APR.so | grep apr- libapr-0.so.0 => /home/stas/httpd/worker/lib/libapr-0.so.0 (0x40004000) % nm /home/stas/httpd/worker/lib/libapr-0.so.0 | grep table_compress d8b0 T apr_table_compress Chances are that it uses an old libapr, which it finds instead of the newer one coming with Apache 2.0.48. So you may need to nuke the old one. (same for libaprutil-0.so.0) __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- -- Matisse Enzer Doodlelab Inc. 415-925-5294 ext. 212 (office) 415-225-6703 (mobile) -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: mp2 - make test - apr/table...FAILED tests 20-21
Matisse Enzer wrote: Thank you. I got: [EMAIL PROTECTED] mod_perl-1.99_10]# ldd blib/arch/auto/APR/APR.so | grep apr-libapr-0.so.0 => /usr/local/apache2.0.47/lib/libapr-0.so.0 (0x40003000) [EMAIL PROTECTED] mod_perl-1.99_10]# nm /usr/local/apache2.0.47/lib/libapr-0.so.0 | grep table_compress d010 T apr_table_compress Good. In which case I want to see: ldd /usr/local/apache2.0.47/bin/httpd Also I want you to do: locate libapr-0.so.0 and see if you come up with another occurence of libapr-0.so.0, somewhere else. If you find one in /usr/lib or /usr/local/lib that will explain the problem. Most likely you have an old pre-installed apr package which gets loaded before /usr/local/apache2.0.47/lib/libapr-0.so.0. So, when you say "nuke the old one" do you mean remove /usr/local/apache2.0.47/lib/libapr-0.so.0 no, no, don't nuke anything just yet. __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: [MP1] Apache segfault after serving request
> Please try this patch: > > Index: src/modules/perl/Table.xs > === > RCS file: /home/cvs/modperl/src/modules/perl/Table.xs,v > retrieving revision 1.10 > diff -u -r1.10 Table.xs > --- src/modules/perl/Table.xs 23 May 2000 15:56:12 - 1.10 > +++ src/modules/perl/Table.xs 10 Nov 2003 19:46:55 - > @@ -114,9 +114,10 @@ > Apache__Table tab; > > CODE: > -tab = (Apache__Table)hvrv2table(self); > -if(SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV) > +if(SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV) { > +tab = (Apache__Table)hvrv2table(self); > safefree(tab); > +} > > void > FETCH(self, key) Thanks for the reply. Unfortunately the patch didn't resolve the problem. The backtrace does look somewhat different, its making some new calls before the segfault that it wasn't before. Numbers 4-13 show differently: GNU gdb Red Hat Linux (5.3post-0.20021129.18rh) This GDB was configured as "i386-redhat-linux-gnu"... (gdb) run -X -f /usr/skynet/conf/httpd.conf Starting program: /usr/skynet/bin/httpd -X -f /usr/skynet/conf/httpd.conf Program received signal SIGSEGV, Segmentation fault. 0x0807698b in hvrv2table (rv=0x0) at perl_util.c:101 101 return (table *)SvIV((SV*)SvRV(rv)); (gdb) bt #0 0x0807698b in hvrv2table (rv=0x0) at perl_util.c:101 #1 0x080889b6 in XS_Apache__Table_DESTROY (cv=0x81ad57c) at Table.c:150 #2 0x0810b6c5 in Perl_pp_entersub () #3 0x080ba310 in S_call_body () #4 0x080ba0ea in Perl_call_sv () #5 0x08112b27 in Perl_sv_clear () #6 0x08112d4f in Perl_sv_free () #7 0x081126af in Perl_sv_clear () #8 0x08112d4f in Perl_sv_free () #9 0x081031b1 in Perl_hv_free_ent () #10 0x081032f2 in S_hfreeentries () #11 0x08103c93 in Perl_hv_undef () #12 0x08112961 in Perl_sv_clear () #13 0x08112d4f in Perl_sv_free () #14 0x08117991 in Perl_sv_clean_objs () #15 0x080b89f4 in perl_destruct () #16 0x0806bd6c in perl_shutdown (s=0x819d0cc, p=0x8deca64) at mod_perl.c:294 #17 0x0806ff43 in perl_child_exit_cleanup (data=0x8) at mod_perl.c:926 #18 0x0808a8e0 in run_cleanups (c=0x8decbfc) at alloc.c:1745 #19 0x0808917f in ap_clear_pool (a=0x8deca64) at alloc.c:541 #20 0x080891fc in ap_destroy_pool (a=0x8deca64) at alloc.c:571 #21 0x080965ca in clean_child_exit (code=0) at http_main.c:528 #22 0x08099429 in child_main (child_num_arg=0) at http_main.c:4367 #23 0x080999b6 in make_child (s=0x819d0cc, slot=0, now=1068497097) at http_main.c:4768 #24 0x08099b1c in startup_children (number_to_start=5) at http_main.c:4850 #25 0x0809a1b9 in standalone_main (argc=4, argv=0xbfffe2c4) at http_main.c:5169 #26 0x0809a9d7 in main (argc=4, argv=0xbfffe2c4) at http_main.c:5511 #27 0x420156a4 in __libc_start_main () from /lib/tls/libc.so.6 (gdb) list 5511STANDALONE_MAIN(argc, argv); 5512} 5513#else 5514if (!tpf_child) { 5515memcpy(tpf_server_name, input_parms.parent.servname, 5516 INETD_SERVNAME_LENGTH); 5517tpf_server_name[INETD_SERVNAME_LENGTH + 1] = '\0'; 5518sprintf(tpf_mutex_key, "%.*x", TPF_MUTEX_KEY_SIZE - 1, getpid()); 5519tpf_parent_pid = getppid(); 5520ap_open_logs(server_conf, plog); We rebuilt the server using new clean tarballs of apache and mod_perl. Thanks again for your help. Marc Slagle Whapps, LLC -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: mp2 - make test - apr/table...FAILED tests 20-21
Stas Bekman wrote: [...] Also I want you to do: locate libapr-0.so.0 and see if you come up with another occurence of libapr-0.so.0, somewhere else. If you find one in /usr/lib or /usr/local/lib that will explain the problem. Most likely you have an old pre-installed apr package which gets loaded before /usr/local/apache2.0.47/lib/libapr-0.so.0. [onto which Matisse replied privately, probably forgetting to hit Reply-ALl] > [EMAIL PROTECTED] bin]# locate libapr-0.so.0 > /usr/local/src/apache/httpd-2.0.45/srclib/apr/.libs/libapr-0.so.0.9.3 > /usr/local/src/apache/httpd-2.0.45/srclib/apr/.libs/libapr-0.so.0 > /usr/local/src/apache/httpd-2.0.47/srclib/apr/.libs/libapr-0.so.0.9.4 > /usr/local/src/apache/httpd-2.0.47/srclib/apr/.libs/libapr-0.so.0 > /usr/local/apache2/lib/libapr-0.so.0.9.3 > /usr/local/apache2/lib/libapr-0.so.0 > /usr/local/apache2.0.47/lib/libapr-0.so.0.9.4 > /usr/local/apache2.0.47/lib/libapr-0.so.0 So /usr/local/apache2/lib/libapr-0.so.0.9.3 is your culprit. Does it come from your manual install or from a prepackaged release? Try: urpmf /usr/local/apache2/lib/libapr-0.so.0.9.3 and if you get a hit, rpm -e that package. But before you do that, I want to investigate another matter: how /usr/local/apache2/lib/ entered the list of libs to load? Did you (or some rpm package) edit /etc/ld.so.conf to include that lib dir? __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: [MP1] Apache segfault after serving request
Marc Slagle wrote: [...] Thanks for the reply. Unfortunately the patch didn't resolve the problem. The backtrace does look somewhat different, its making some new calls before the segfault that it wasn't before. Numbers 4-13 show differently: [...] I don't have a test to reproduce the segfault, so I'm just shooting in the dark based on the core trace that you've kindly provided. Please revert the previous patch and try the new one: Index: src/modules/perl/Table.xs === RCS file: /home/cvs/modperl/src/modules/perl/Table.xs,v retrieving revision 1.10 diff -u -r1.10 Table.xs --- src/modules/perl/Table.xs 23 May 2000 15:56:12 - 1.10 +++ src/modules/perl/Table.xs 10 Nov 2003 22:33:09 - @@ -114,9 +114,10 @@ Apache__Table tab; CODE: -tab = (Apache__Table)hvrv2table(self); -if(SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV) +if(self && SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV) { +tab = (Apache__Table)hvrv2table(self); safefree(tab); +} void FETCH(self, key) I wonder why SvROK(NULL) returns true. It doesn't make any sense. __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: mp2 - make test - apr/table...FAILED tests 20-21
All OK now. I'm sure /usr/local/apache2/lib/libapr-0.so.0.9.3 came from my manual install of httpd-2.0.45 I've investigated and when I built httpd-2.0.47 I built it with a prefix of /usr/local/apache2, where an existing 2.0.45 installation exists. I actually installed 2.0.47 in /usr/local/apache2.0.47 but the binary was built probably looking at the old libs. FYI, /etc/ld.so.conf doesn't have /usr/local/apache{anything} After rebuilding httpd-2.0.47 with --prefix=/usr/local/apache2.0.47 I get: ldd /usr/local/apache2.0.47/bin/httpd libssl.so.2 => /lib/libssl.so.2 (0x4003) libcrypto.so.2 => /lib/libcrypto.so.2 (0x40061000) libaprutil-0.so.0 => /usr/local/apache2.0.47/lib/libaprutil-0.so.0 (0x40135000) libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x40149000) libdb-4.0.so => /lib/libdb-4.0.so (0x4015) libexpat.so.0 => /usr/lib/libexpat.so.0 (0x401f8000) libapr-0.so.0 => /usr/local/apache2.0.47/lib/libapr-0.so.0 (0x40218000) librt.so.1 => /lib/librt.so.1 (0x40235000) libm.so.6 => /lib/i686/libm.so.6 (0x40247000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x40269000) libnsl.so.1 => /lib/libnsl.so.1 (0x40296000) libdl.so.2 => /lib/libdl.so.2 (0x402ac000) libpthread.so.0 => /lib/i686/libpthread.so.0 (0x402af000) libc.so.6 => /lib/i686/libc.so.6 (0x4200) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x4000) and then building and testing mod_perl-1.99_10 works fine. Thank you once again for excellent help! At 2:32 PM -0800 11/10/03, Stas Bekman wrote: ... So /usr/local/apache2/lib/libapr-0.so.0.9.3 is your culprit. Does it come from your manual install or from a prepackaged release? Try: urpmf /usr/local/apache2/lib/libapr-0.so.0.9.3 and if you get a hit, rpm -e that package. But before you do that, I want to investigate another matter: how /usr/local/apache2/lib/ entered the list of libs to load? Did you (or some rpm package) edit /etc/ld.so.conf to include that lib dir? __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- -- Matisse Enzer Doodlelab Inc. 415-925-5294 ext. 212 (office) 415-225-6703 (mobile) -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: mp2 - make test - apr/table...FAILED tests 20-21
Matisse Enzer wrote: All OK now. I'm sure /usr/local/apache2/lib/libapr-0.so.0.9.3 came from my manual install of httpd-2.0.45 I've investigated and when I built httpd-2.0.47 I built it with a prefix of /usr/local/apache2, where an existing 2.0.45 installation exists. I actually installed 2.0.47 in /usr/local/apache2.0.47 but the binary was built probably looking at the old libs. Aha, so it's your fault ;) FYI, /etc/ld.so.conf doesn't have /usr/local/apache{anything} OK After rebuilding httpd-2.0.47 with --prefix=/usr/local/apache2.0.47 I get: ldd /usr/local/apache2.0.47/bin/httpd libssl.so.2 => /lib/libssl.so.2 (0x4003) libcrypto.so.2 => /lib/libcrypto.so.2 (0x40061000) libaprutil-0.so.0 => /usr/local/apache2.0.47/lib/libaprutil-0.so.0 (0x40135000) libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x40149000) libdb-4.0.so => /lib/libdb-4.0.so (0x4015) libexpat.so.0 => /usr/lib/libexpat.so.0 (0x401f8000) libapr-0.so.0 => /usr/local/apache2.0.47/lib/libapr-0.so.0 (0x40218000) librt.so.1 => /lib/librt.so.1 (0x40235000) libm.so.6 => /lib/i686/libm.so.6 (0x40247000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x40269000) libnsl.so.1 => /lib/libnsl.so.1 (0x40296000) libdl.so.2 => /lib/libdl.so.2 (0x402ac000) libpthread.so.0 => /lib/i686/libpthread.so.0 (0x402af000) libc.so.6 => /lib/i686/libc.so.6 (0x4200) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x4000) and then building and testing mod_perl-1.99_10 works fine. Thank you once again for excellent help! Very nice ;) As mp2 now depends on several libraries I think we are going to have this question asked more than once. Mattisse, would you like to write a short troubleshooting section based on your questions and my answers? So we can add it to the docs and point others to it. It's the best that you peruse this thread's data (including the relevant chunks of output that you have posted in your replies). Also I have failed to post your complete reply that didn't make it to the list, oversnipping it. the missing part was: [EMAIL PROTECTED] bin]# ldd /usr/local/apache2.0.47/bin/httpd libssl.so.2 => /lib/libssl.so.2 (0x4003) libcrypto.so.2 => /lib/libcrypto.so.2 (0x40061000) libaprutil-0.so.0 => /usr/local/apache2/lib/libaprutil-0.so.0 (0x40135000) libapr-0.so.0 => /usr/local/apache2/lib/libapr-0.so.0 (0x40218000) ... So that output was more clearly showing the problem -- httpd was linked against the wrong libs. __ Stas BekmanJAm_pH --> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: mp2 - make test - apr/table...FAILED tests 20-21
At 3:54 PM -0800 11/10/03, Stas Bekman wrote: Aha, so it's your fault ;) Yes :-) As mp2 now depends on several libraries I think we are going to have this question asked more than once. Mattisse, would you like to write a short troubleshooting section based on your questions and my answers? So we can add it to the docs and point others to it. It's the best that you peruse this thread's data (including the relevant chunks of output that you have posted in your replies). Yes, I will do that this week and post to the list here. -- -- Matisse Enzer Doodlelab Inc. 415-925-5294 ext. 212 (office) 415-225-6703 (mobile) -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Apache::DBI and MySQL warnings
So, has anyone else done an app using a combination of transactional and non-transactional tables in MySQL? The problem I'm having -- which is more like an annoyance than a problem -- is that I keep getting this message in my logs: DBD::mysql::db rollback failed: Warning: Some non-transactional changed tables couldn't be rolled back at /home/perrin/work/checked_out/OCS/lib/Apache/DBI.pm line 154. This is because Apache::DBI automatically does a rollback after every request when you have AutoCommit turned off, and MySQL is letting me know that it couldn't roll back the MyISAM tables. No problem, I knew that, and the tables weren't changed anyway. However, I don't want this warning showing up in logs and scaring admins. So, the question is, what's an elegant way to eliminate this warning? I could modify Apache::DBI to do it (although filtering a specific warning, as opposed to simply turning them all off temporarilly, could be a pain). I could install a WARN handler. Ick. Any other bright ideas? - Perrin -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: [RELEASE CANDIDATE] mod_perl-1.99_11 RC1
On Friday at 4:00pm, GY=>Geoffrey Young <[EMAIL PROTECTED]> wrote: GY> a release candidate for mod_perl 1.99_11 is now available for testing. GY> note that 1.99_11 will be required for users running perl 5.8.2. GY> GY> please grab the candidate from GY> GY>http://perl.apache.org/~geoff/mod_perl-1.99_11-dev.tar.gz GY> GY> and report back successes or failures. when reporting failures, GY> please see the bug reporting guidelines at GY> -8<-- Start Bug Report 8<-- Geoff, I have an anomolous report on a Gentoo Linux system. Anything else I can do to help? (I am not subscribed to [EMAIL PROTECTED], so I am not sure that the Cc: to dev list will work if the sender is not subscribed). 1. Problem Description: The code which figured out where the installed apache 2 config files are located used to work flawlessly in 1.99_10. Now I get a: *** configuration file /etc/apache2/conf/modules.d/*.conf does not exist fairly early in the configuration process. I didn't even bother to continue the build after that. (From the bug report) You can focus on the: -D SERVER_CONFIG_FILE="/etc/apache2/conf/apache2.conf" and instead of looking there, it decided to search in modules.d/*.conf? 2. Used Components and their Configuration: *** mod_perl version 1.9911 *** using lib/Apache/BuildConfig.pm *** Makefile.PL options: MP_APXS => /usr/sbin/apxs2 MP_AP_PREFIX=> /usr MP_COMPAT_1X=> 1 MP_DEBUG=> 1 MP_GENERATE_XS => 1 MP_INST_APACHE2 => 1 MP_LIBNAME => mod_perl MP_TRACE=> 1 MP_USE_DSO => 1 *** /usr/sbin/apache2 -V Server version: Apache/2.0.48 Server built: Nov 7 2003 13:31:58 Server's Module Magic Number: 20020903:4 Architecture: 32-bit Server compiled with -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D HTTPD_ROOT="/usr" -D SUEXEC_BIN="/usr/sbin/suexec2" -D DEFAULT_PIDLOG="/var/run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="/var/run/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="/etc/apache2/conf/mime.types" -D SERVER_CONFIG_FILE="/etc/apache2/conf/apache2.conf" *** /usr/bin/perl -V Summary of my perl5 (revision 5.0 version 8 subversion 2) configuration: Platform: osname=linux, osvers=2.4.20-ck6, archname=i686-linux uname='linux haroon.sis.utoronto.ca 2.4.20-ck6 #1 fri jun 6 14:48:56 edt 2003 i686 intel(r) pentium(r) 4 cpu 1.80ghz genuineintel gnulinux ' config_args='-des -Darchname=i686-linux -Dcc=gcc -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr -Dlocincpth= -Doptimize=-march=pentium4 -O3 -pipe -s -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays -ffast-math -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Dscriptdir=/usr/bin -Dman3ext=3pm -Dcf_by=Gentoo -Ud_csh -Di_gdbm -Di_db -Di_ndbm' hint=recommended, 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='gcc', ccflags ='-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-march=pentium4 -O3 -pipe -s -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays -ffast-math', cppflags='-DPERL5 -fno-strict-aliasing' ccversion='', gccversion='3.3.2 20031022 (Gentoo Linux 3.3.2-r2, propolice)', 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='gcc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lpthread -lnsl -lndbm -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc libc=/lib/libc-2.3.2.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.3.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic' 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 Nov 10 2003 10:00:13 %ENV: PERL_LWP_USE_HTTP_10="1" @INC: /etc/perl /usr/lib/perl5/site_perl/5.8.2/i686-linux /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1/i686-linux /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0/i686-linux /usr/lib/perl5/site_perl/5.8.0
[ANNOUNCE] mod_perl 1.99_11
The URL http://perl.apache.org/~geoff/mod_perl-1.99_11.tar.gz has entered CPAN as file: $CPAN/authors/id/G/GE/GEOFF/mod_perl-1.99_11.tar.gz size: 1093014 bytes md5: 855adb033de193dc999a5a2bd714f675 Changes since 1.99_10 add a build/win32_fetch_apxs script (called within the top-level Makefile.PL) to offer to fetch and install a Win32 development version of apxs and (apr|apu)-config [Randy Kobes] rewrite $r->read() and perlio read functions to use the same function, which completely satisfies the read request if possible, on the way getting rid of get_client_block and its supporting functions which have problems and will most likely will be removed from the httpd-API in the future. Directly manipulate bucket brigades instead. [Stas] Since Apache2.pm pops /foo/Apache2 dirs to the top of @INC, it now also takes care of keeping lib and blib dirs before the system dirs, so that previously installed libraries won't get loaded instead of the currently uninstalled libraries that are under test. [Stas] When 'make test' fails we now print the info on what to do next [Stas] At the end of 'make install' we now print the info how to proceed with mod_perl and what to do in the case of post-install problems [Geoff] Adjust the source to properly work with 5.8.2's new algorithm of dynamic re-hashing of hashes on hash collision attack. [Nicholas Clark <[EMAIL PROTECTED]>, Stas]. Add a test that mounts such an attack so we can verify that we can survive this rehashing. [Scott A Crosby <[EMAIL PROTECTED]>, Nicholas Clark <[EMAIL PROTECTED]>, Tels <[EMAIL PROTECTED]>, Mark Jason Dominus <[EMAIL PROTECTED]>, Stas] Standardize the Apache::PerlSections package name to it's plural form for clarity and so that the pod gets glued in it's proper place. [Philippe M. Chiasson <[EMAIL PROTECTED]>] return value from Perl callbacks are now passed directly to Apache without additional post-call manipulations (such as assuming HTTP_OK should really be OK). [Geoffrey Young] perl 5.8.1 w/ ithreads has a bug where it reports the wrong parent pid (as if the process was never forked), provide a local workaround (+ new test). [Rafael Garcia-Suarez <[EMAIL PROTECTED]>] overriden STD* streams now can be further overriden and will be properly restored, which allows functions like $r->internal_redirect work (+add tests) [Stas] implement perlio's getarg hook, which now allows dupping STD* streams overloaded by modperl [Stas] Add PerlMapToStorageHandler [Geoffrey Young] callbacks are now expected to return a meaningful value (OK, SERVER_ERROR, etc) or return via an official API (exit, die, etc). relying on implicit returns from the last call evaluated by a subroutine may result in server errors. [Stas, Geoffrey Young] in the MP_MAINTAINER mode add the -Werror compilation flag when perl v5.6.2 or higher is used, so that we don't miss compilation warnings. [Stas] fix the Makefile.PL option parser to support overriding of certain build options, in addition to appending to them (.e.g. now MP_LIBNAME is overridable) [Andrew Wyllie <[EMAIL PROTECTED]>] make sure that connection filters won't be inserted as request filters [Stas] Prevent the 'Use of uninitialized value.' warning when ModPerl::Util::exit is used. [Stas] To make the test-sute sandbox-friendly, which break when things try to run off /tmp, use t/logs as the location of the mod_cgid socket and TMPDIR env var [Haroon Rafique <[EMAIL PROTECTED]>] -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
[ANNOUNCE] Apache-Test 1.06
The URL http://perl.apache.org/~geoff/Apache-Test-1.06.tar.gz has entered CPAN as file: $CPAN/authors/id/G/GE/GEOFF/Apache-Test-1.06.tar.gz size: 94492 bytes md5: 27c7096b027fa1d477b260c54d49c455 Changes since 1.05 added -startup_timeout and $ENV{APACHE_TEST_STARTUP_TIMEOUT} as places to specify the maximum number of seconds to wait for the test server to start. the default is still 60 seconds. [Geoffrey Young] use apxs PREFIX to resolve relative httpd.conf directives ServerRoot is not present [Mike Cramer] add support for a new subclass method 'bug_report', which if provided will be called when 'make test' fails. we use it in mod_perl to print the pointers on how to proceed when the failure occurs. [Stas] sudo and su -u aren't portable, therefore use a simple setuid/setguid perl program instead, to check whether the root directory of the test suite is rwx by the user/group apache is going to run under (when running 'make test' as root). [Stas] -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
further benchmarks on different versions of Perl
I grabbed perlbench from CPAN and did some more benchmarks. These confirmed what we already suspected, i.e. there are no significant performance differences in Perl itself between 5.6.1, 5.8.0, and 5.8.1, but the stock Perl on Red Hat 9 (which is compiled with threads) is significantly slower than a default compile of any recent Perl on the same system. All of the Perls that I compiled were done with default options. The output of perlbench is attached. - Perrin A) perl-5.006001 path= /usr/local/perl56/bin/perl cc = cc optimize= -O2 ccflags = -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 usemymalloc = n B) perl-5.008 path= /usr/local/perl580/bin/perl cc = cc optimize= -O3 ccflags = -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm usemymalloc = n C) perl-5.008001 path= /usr/local/perl581/bin/perl cc = cc optimize= -O3 ccflags = -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm usemymalloc = n D) perl-5.008 path= /usr/bin/perl cc = gcc optimize= -O2 -g -pipe -march=i386 -mcpu=i686 ccflags = -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm usemymalloc = n A B C D arith/mixed 100 95 93 82 arith/trig 100 92 93 82 array/copy 100 108 103 81 array/foreach100 110 118 83 array/index 100 112 116 95 array/pop100 105 99 79 array/shift 100 103 99 78 array/sort-num 100 92 94 72 array/sort 100 99 99 89 call/0arg100 100 100 90 call/1arg100 97 103 88 call/2arg100 100 103 87 call/9arg100 111 110 90 call/empty 100 98 99 74 call/fib 100 109 106 95 call/method 100 106 107 86 call/wantarray 100 104 104 78 hash/copy100 114 117 89 hash/each100 95 95 76 hash/foreach-sort100 100 100 83 hash/foreach 100 109 113 95 hash/get 100 104 106 70 hash/set 100 83 81 75 loop/for-c 100 107 104 95 loop/for-range-const 100 97 110 81 loop/for-range 100 102 114 90 loop/getline 100 88 88 66 loop/while-my100 97 104 84 loop/while 100 88 103 84 re/const 100 94 87 59 re/w 100 93 90 72 startup/fewmod 100 66 61 45 startup/lotsofsub100 93 92 65 startup/noprog 100 84 80 52 string/base64100 106 105 91 string/htmlparser100 99 92 77 string/index-const 100 92 95 50 string/index-var 100 95 98 74 string/ipol 100 97 97 89 string/tr100 101 93 100 AVERAGE 100 99 99 80 -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
Re: further benchmarks on different versions of Perl
Perrin Harkins wrote: I grabbed perlbench from CPAN and did some more benchmarks. These confirmed what we already suspected, i.e. there are no significant performance differences in Perl itself between 5.6.1, 5.8.0, and 5.8.1, but the stock Perl on Red Hat 9 (which is compiled with threads) is significantly slower than a default compile of any recent Perl on the same system. All of the Perls that I compiled were done with default options. The output of perlbench is attached. Thanks Perrin for this comparison numbers, but I think you didn't provide enough build information. Default build opts vary from release to release and from OS to OS, you really need to show the whole perl -V to make these numbers more useful. In any case as the "Practical mod_perl" book suggests you should never blindly follow any benchmarks that you see, but to benchmark your own thing and come to your conclusions. This is because there are many factors that may make the benchmarks show quite a different picture in your case. What's for sure is that as of this writing, enabling ithreads won't make your perl faster ;) A) perl-5.006001 path= /usr/local/perl56/bin/perl cc = cc optimize= -O2 ccflags = -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 usemymalloc = n B) perl-5.008 path= /usr/local/perl580/bin/perl cc = cc optimize= -O3 ccflags = -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm usemymalloc = n C) perl-5.008001 path= /usr/local/perl581/bin/perl cc = cc optimize= -O3 ccflags = -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm usemymalloc = n D) perl-5.008 path= /usr/bin/perl cc = gcc optimize= -O2 -g -pipe -march=i386 -mcpu=i686 ccflags = -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm usemymalloc = n You mean RH's perl comes with perl built with -DDEBUGGING? how silly ;) This option definitely adds to the size perl lib and its run-time slowdown. Someone please report to the RH guys. I've CC'ed Chip on this reply, in case he still maintains this package. Though I think it's also compiled with ithreads, whereas all others are without, so it's not a fair comparison across different perl versions. You can compare 5.6.0 with 5.8.0 using the same build options, or you can compare 5.8.0 w/ and w/o threads, but not the cross of these. I guess your B and D items should be looked at as one comparison group and A and C as another. FWIW, here is the perl -V of perl-5.8.1 (really 5.8.1-RC4) that comes with Mandrake 9.2: % perl -V Summary of my perl5 (revision 5.0 version 8 subversion 1) configuration: Platform: osname=linux, osvers=2.4.18-23mdksmp, archname=i386-linux-thread-multi uname='linux hp6.mandrakesoft.com 2.4.18-23mdksmp #1 smp fri aug 2 12:31:40 cest 2002 i686 unknown unknown gnulinux ' config_args='-des -Dinc_version_list=5.8.0/i386-linux-thread-multi 5.8.0 5.6.1 5.6.0 -Darchname=i386-linux -Dcc=gcc -Doptimize=-O2 -fomit-frame-pointer -pipe -march=i586 -mcpu=pentiumpro -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr -Dman3ext=3pm -Dcf_by=MandrakeSoft -Dmyhostname=localhost [EMAIL PROTECTED] -Dd_dosuid -Ud_csh -Duseshrplib -Dusethreads' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='-O2 -fomit-frame-pointer -pipe -march=i586 -mcpu=pentiumpro ', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm' ccversion='', gccversion='3.3.1 (Mandrake Linux 9.2 3.3.1-1mdk)', 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='gcc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -lndbm -lgdbm -ldl -lm -lcrypt -lutil -lpthread -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='
Re: further benchmarks on different versions of Perl
On Mon, 2003-11-10 at 21:31, Stas Bekman wrote: > Thanks Perrin for this comparison numbers, but I think you didn't provide > enough build information. Default build opts vary from release to release and > from OS to OS, you really need to show the whole perl -V to make these numbers > more useful. Well, I'm not trying to do an analysis of compiler optimizations here. I built these the way I suspect almost everyone else does: all defaults. The main point was to see if there has been a degradation in performance since 5.6.1, since I have been hearing that a lot. The results show clearly enough to me that there has not been, and they agree with my previous benchmarks. They also show that if you don't need threads, it is very easy to build a Perl that performs significantly better than the one that comes with Red Hat 9, so it's worth doing if you are thinking about deploying a mod_perl app on Red Hat 9 and concerned about performance. > Though I think it's also compiled with ithreads, whereas all others are > without, so it's not a fair comparison across different perl versions. That was actually the reason I included it: to get a sense of how much ithreads hurt performance. As you say though, the other options might be affecting it as well. - Perrin -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html
BEGIN, preloading and restarting
Hello, I've two quick and perhaps silly questions. I'm preloading a whole lot of modules in my startup script. In fact, some of the stuff I'm preloading aren't .pm modules, they're .pl libraries I want to "require" rather than "use". Do I have to wrap the require statements inside a BEGIN {} block in order for them to be correctly preloaded for children, or perhaps it doesn't matter and I can just require them at the runtime of the startup script and not its compile time? (my guess is that requiring at runtime is fine, since both compile time and runtime of that script happen while processing the PerlRequire directive in the config file, but perhaps I'm missing something here?) The second question is about restarting the server. My httpd.conf file has only one perlmod-related directive: a PerlRequire of my startup script, and nothing more. The startup script uses Apache->httpd_conf() to execute a whole bunch of other crucial config directives, like DocumentRoot and setting Perl*Handlers. This is by design and is very convenient to me. However, it doesn't work across restarts, either regular or graceful (HUP or USR1). I thought of using a PerlRestartHandler to call a subroutine which would execute the same Apache->httpd_conf commands, but I couldn't quite figure out when exactly during restart these commands would be sent to Apache, and whether it might mess some complex configs (e.g. if there're several virtual servers, in context of which one of them will DocumentRoot be processed, if it's set in a callback called by a RestartHandler?). So the way I solved it was by appending to the end of my startup script a statement deleting it from %INC: delete $INC{"/path/to/script.pl"}; Then after restart the script is run again and all the Apache->httpd_conf directives are executed. Is that a reasonable way to solve this problem, or does it have some gotchas/drawbacks I'm not aware of? Many thanks in advance, Anatoly. -- avva -- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html