Tuesday, 25 December 2007
|
| [patch] Apache::Reload, detect required version of Apache::Test Fred Moyer 22:29:53 |
| | This didn't occur to me until yesterday but we need a:t version 1.30 to run the tests for apache::reload. Here's my thoughts on how to implement it, any other suggestions?
Index: Makefile.PL =================================================================== --- Makefile.PL (revision 606234) +++ Makefile.PL (working copy) @@ -5,6 +5,7 @@ my %prereqs = (); my %mp2 = ( mod_perl2 => 1.99022 ); my %mp1 = ( mod_perl => 0 ); +my $at_min_ver = 1.30;
my $mp_gen; if ($ENV{MOD_PERL_2_BUILD}) { @@ -51,6 +52,12 @@ sub check_for_apache_test { return unless eval { require Apache::Test; + if ($Apache::Test::VERSION < $at_min_ver) { + warn "Apache::Test version is " . $Apache::Test::VERSION . + ", minimum version required is $at_min_ver" . + ", tests will be skipped\n"; + die; + } require Apache::TestMM; require Apache::TestRunPerl; 1; @@ -212,7 +219,15 @@
return $self->Apache::TestMM::test(@_) if $HAS_APACHE_TEST;
- return $self->SUPER::test(@_); + return <<EOF +test:: +\t\@echo +\t\@echo sorry, cannot run tests without a properly +\t\@echo configured Apache-Test environment, mininum +\t\@echo Apache::Test version needes is $at_min_ver +\t\@echo +EOF + }
sub clean {
|
| | Add comment |
Monday, 24 December 2007
|
| SSL Question Joe Apache 22:24:04 |
| | I am looking for a SSL Certificate from one of the browser trusted CA's. Which is the best and the cheapest. I'm looking at InstantSSL.... any stories?
Thanks, J ------------------------------------------------------ Jay States Productivity Media Inc. http://productivitymedia.com
--------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org " from the digest: users-digest-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org
|
| | 22 answer | Add comment |
|
| [RELEASE CANDIDATE] Apache-Reload 0.10 RC1 Fred Moyer 06:52:51 |
| | Greetings,
A release candidate for Apache::Reload is now available [1]. Please take a few minutes to download, test, and report back success or failure for the test suite and compatibility with your existing mod_perl applications.
Changes include:
Remove modified modules before reloading them [Javier Ureuen Val]
Matt Sergeant has graciously donated the Apache::Reload code to the ASF, and now both Apache::Reload and Apache2::Reload will be shipped as an external Perl module, Apache2::Reload is currently shipped with the mod_perl core.
[1] - http://people.apache.org/~phred/Apache-Reload-0.10-RC1.tar.gz
Thanks for helping out!
- Fred
|
| | Add comment |
Friday, 21 December 2007
|
| mp1 needs release for 5.10 Geoffrey Young 22:21:47 |
| | hi
according to this
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2007-12/msg00278.html
mp1 (from cpan) will require a patch to work with 5.10. the good news is that, despite our collective lack of tuits, steve has already committed the patch, so all we need to do is release.
so, any volunteers to be release manager and push this one out "soonish"?
--Geoff
|
| | 2 answer | Add comment |
|
| use mro; Philippe M. Chiasson 21:26:24 |
| | One neat thing about Perl 5.10 is the mro package (Method Resolution Order).
But the neat feature that caught my eye is pkg_gen()
http://search.cpan.org/~rgarcia/perl-5.10.0/lib/mro.pm#mro::get_pkg_gen($classname)
In mod_perl, we use PL_sub_generation to determine if our method cache (handlers) is still valid. That is unfortunately a single integer that's basically incremented every time a subroutine is redefined anywhere.
So this means that when, say, Apache::Reload kicks in, it will invalidate the handler cache we have for every single module, not just the one we just reloaded.
In 5.10, mro::get_pkg_gen($classname) gives you the same, except at a package granularity. Pretty cool optimization.
When building against 5.10, we could make use of this I'd think.
Just a thought.
-- Philippe M. Chiasson GPG: F9BFE0C2480E7680 1AE53631CB32A107 88C3A5A5 http://gozer.ectoplasm.org/ m/gozer\@(apache|cpan|ectoplasm)\.org/
|
| | Add comment |
Tuesday, 18 December 2007
|
| Server Side Includes Guest 12:06:18 |
| | I need assistance with getting SSI running on my Solaris 8 system with the below configuration. From what I see is that I don't have the right module loaded. Is it possible to download just a module and add it to the config? How and where can I get this from? I am very new to compiling so hopefully I can get some good directions. I will provide summary and more info if needed. Thank you in advance.
bash-2.03# ./httpd -v Server version: IBM_HTTP_Server/1.3.12.6 Apache/1.3.12 (Unix) Server built: Jan 16 2002 14:10:57
./httpd -l Compiled-in modules: http_core.c mod_so.c suexec: disabled; invalid wrapper /opt/IBMHTTPD/bin/suexec
bash-2.03# ./httpd -V Server version: IBM_HTTP_Server/1.3.12.6 Apache/1.3.12 (Unix) Server built: Jan 16 2002 14:10:57 Server's Module Magic Number: 19990320:8 Server compiled with.... -D HAVE_MMAP -D USE_MMAP_SCOREBOARD -D USE_MMAP_FILES -D USE_FCNTL_SERIALIZED_ACCEPT -D HTTPD_ROOT="/opt/IBMHTTPD" -D SUEXEC_BIN="/opt/IBMHTTPD/bin/suexec" -D DEFAULT_PIDLOG="logs/httpd.pid" -D DEFAULT_SCOREBOARD="logs/httpd.scoreboard" -D DEFAULT_LOCKFILE="logs/httpd.lock" -D DEFAULT_XFERLOG="logs/access_log" -D DEFAULT_ERRORLOG="logs/error_log" -D TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf" -D ACCESS_CONFIG_FILE="conf/access.conf" -D RESOURCE_CONFIG_FILE="conf/srm.conf"
|
| | 8 answers | Add comment |
Saturday, 15 December 2007
|
| [patch] Apache::Reload work from Apachecon Fred Moyer 01:54:11 |
| | Greetings,
I have attached the work completed for Apache::Reload up to this point. A great deal of progress was made at ApacheCon thanks to help from Gozer, Geoff, and others.
There are some files that I will need to 'svn mv' from mp core and then modify, but this diff is the bulk of what I plan to commit.
Comments welcome. One note, because Apache2::Reload is v0.9 in core, and Apache::Reload is v0.8, I have marked this version 0.10 to avoid any issues installing, see Changes for details.
If all goes well I hope to have this released to CPAN by the end of the month.
- Fred
Index: RELEASE =================================================================== --- RELEASE (revision 558376) +++ RELEASE (working copy) @@ -40,8 +40,8 @@
a. edit ./Changes: - find lib -type f -name "*.pm" | \ - xargs perl -pi -e 's,0.08-dev,0.08-rc1,g' - - perl -pi -e 's,0.08-dev,0.08-rc1,g' Changes + xargs perl -pi -e 's,0.10-dev,0.10-rc1,g' + - perl -pi -e 's,0.10-dev,0.10-rc1,g' Changes
- don't commit these (see dev@ archives)
@@ -60,7 +60,7 @@ o dev/perl.apache.org o modperl/perl.apache.org
- Subject: [RELEASE CANDIDATE] Apache-Reload 0.08 RC\d+ + Subject: [RELEASE CANDIDATE] Apache-Reload 0.10 RC\d+
(or maybe longer to give most people a chance to catch up). no need to tag this package @@ -95,7 +95,7 @@ 5. Announce the package
a. post ... to the modperl, announce lists - Subject: [ANNOUNCE] Apache-Reload 0.08 + Subject: [ANNOUNCE] Apache-Reload 0.10 include - MD5 sig (as it comes from CPAN upload announce). - the latest Changes @@ -107,7 +107,7 @@ b. edit ./Changes: - start a new item with incremented version + '-dev'
- =item 0.92-dev + =item 0.11-dev
c. bump up version numbers in this file to make it easier to do the next release. @@ -115,4 +115,4 @@ $ perl -pi -e 's/(\d+)\.(\d+)/join(".", $1, $2+1)/eg' RELEASE
d. commit Changes - % svn ci -m "start 0.92-dev cycle" Changes RELEASE lib/Apache/Reload.pm + % svn ci -m "start 0.11-dev cycle" Changes RELEASE lib/Apache/Reload.pm Index: t/conf/extra.last.conf.in =================================================================== --- t/conf/extra.last.conf.in (revision 0) +++ t/conf/extra.last.conf.in (revision 0) @@ -0,0 +1,22 @@ +<IfModule mod_perl.c> + <IfDefine APACHE2> + PerlModule Apache2::Reload + PerlModule Apache2::TestReload + </IfDefine> + <IfDefine APACHE1> + PerlModule Apache::Reload + PerlModule Apache::TestReload + </IfDefine> + </IfDefine> + <Location /reload> + SetHandler perl-script + <IfDefine APACHE2> + PerlInitHandler Apache2::Reload + PerlResponseHandler Apache2::TestReload + </IfDefine> + <IfDefine APACHE1> + PerlInitHandler Apache::Reload + PerlHandler Apache::TestReload + </IfDefine> + </Location> +</IfModule> Index: t/lib/Apache/TestReload.pm =================================================================== --- t/lib/Apache/TestReload.pm (revision 0) +++ t/lib/Apache/TestReload.pm (revision 0) @@ -0,0 +1,44 @@ +package Apache::TestReload; + +use strict; +use warnings FATAL => 'all'; + +#use ModPerl::Util (); +use Apache::Constants qw common); + +my $package = 'Reload::Test'; + +our $pass = 0; + +sub handler { + my $r = shift; + $pass++; + $r->send_http_header('text/plain'); + if ((defined ($r->args)) && ($r->args eq 'last')) { + #Apache2::Reload->unregister_module($package); + #ModPerl::Util::unload_package($package); + $pass = 0; + $r->print("unregistered OK"); + return OK; + } + + eval "require $package"; + + Reload::Test::run($r); + + return OK; +} + +# This one shouldn't be touched +package Reload::Test::SubPackage; + +sub subpackage { + if ($Apache::TestReload::pass == '2') { + return 'SUBPACKAGE'; + } + else { + return 'subpackage'; + } +} + +1; Index: t/lib/Apache2/TestReload.pm =================================================================== --- t/lib/Apache2/TestReload.pm (revision 0) +++ t/lib/Apache2/TestReload.pm (revision 0) @@ -0,0 +1,45 @@ +package Apache2::TestReload; + +use strict; +use warnings FATAL => 'all'; + +use ModPerl::Util (); +use Apache2::RequestRec (); +use Apache2::Const -compile => qw(OK); +use Apache2::RequestIO (); + +my $package = 'Reload::Test'; + +our $pass = 0; + +sub handler { + my $r = shift; + $pass++; + if ($r->args eq 'last') { + Apache2::Reload->unregister_module($package); + ModPerl::Util::unload_package($package); + $pass = 0; + $r->print("unregistered OK"); + return Apache2::Const::OK; + } + + eval "require $package"; + + Reload::Test::run($r); + + return Apache2::Const::OK; +} + +# This one shouldn't be touched +package Reload::Test::SubPackage; + +sub subpackage { + if ($Apache2::TestReload::pass == '2') { + return 'SUBPACKAGE'; + } + else { + return 'subpackage'; + } +} + +1; Index: t/reload.t =================================================================== --- t/reload.t (revision 0) +++ t/reload.t (revision 0) @@ -0,0 +1,70 @@ +use strict; +use warnings FATAL => 'all'; + +use Apache::Test; +use Apache::TestUtil; +use Apache::TestRequest; +use File::Spec::Functions qw(catfile tmpdir); + +Apache::TestRequest::user_agent(keep_alive => 1); + +plan tests => 3, need 'HTML::HeadParser'; + +my $test_file = catfile qw(Reload Test.pm); + +my $location = '/reload'; + +my @tests = qw(const prototype simple subpackage); + +my $header = join '', <DATA>; + +my $initial = <<'EOF'; +sub simple { 'simple' } +use constant const => 'const'; +sub prototype($) { 'prototype' } +sub promised; +EOF + +my $modified = <<'EOF'; +sub simple { 'SIMPLE' } +use constant const => 'CONST'; +sub prototype($$) { 'PROTOTYPE' } +EOF + +t_write_test_lib($test_file, $header, $initial); + +{ + my $expected = join '', map { "$_ _\n" } sort @tests; + my $received = GET $location; + ok t_cmp($received->content, $expected, 'Initial'); +} + +t_write_test_lib($test_file, $header, $modified); + +{ + my $expected = join '', map { "$_:" . uc($_) . "\n" } sort @tests; + my $received = GET $location; + ok t_cmp($received->content, $expected, 'Reload'); +} + +{ + my $expected = "unregistered OK"; + my $received = GET "$location?last"; + ok t_cmp($received->content, $expected, 'Unregister'); +} + +__DATA__ +package Reload::Test; + +our @methods = qw(const prototype simple subpackage); + +sub subpackage { return Reload::Test::SubPackage::subpackage() } + +sub run { + my $r = shift; + foreach my $m (sort @methods) { + $r->print($m, ':', __PACKAGE__->$m(), "\n"); + } +} + +1; Index: lib/Apache/Reload.pm =================================================================== --- lib/Apache/Reload.pm (revision 558376) +++ lib/Apache/Reload.pm (working copy) @@ -17,7 +17,7 @@
use strict;
-$Apache::Reload::VERSION = '0.08'; +$Apache::Reload::VERSION = '0.10';
use vars qw(%INCS %Stat $TouchTime %UndefFields);
@@ -262,6 +262,10 @@
Matt Sergeant, matt@sergeant.org
+=head1 MAINTAINERS + +the mod_perl developers, dev@perl.apache.org + =head1 SEE ALSO
Apache::StatINC, Stonehenge::Reload Index: lib/Apache2/Reload.pm =================================================================== --- lib/Apache2/Reload.pm (revision 0) +++ lib/Apache2/Reload.pm (revision 0) @@ -0,0 +1,297 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +package Apache2::Reload; + +use strict; +use warnings FATAL => 'all'; + +use mod_perl2; + +our $VERSION = '0.10'; + +use Apache2::Const -compile => qw(OK); + +use Apache2::Connection; +use Apache2::ServerUtil; +use Apache2::RequestUtil; + +use ModPerl::Util (); + +use vars qw(%INCS %Stat $TouchTime); + +%Stat = ($INC{"Apache2/Reload.pm"} => time); + +$TouchTime = time; + +sub import { + my $class = shift; + my ($package, $file) = (caller)[0,1]; + + $class->register_module($package, $file); +} + +sub package_to_module { + my $package = shift; + $package =~ s/::/\//g; + $package .= ".pm"; + return $package; +} + +sub module_to_package { + my $module = shift; + $module =~ s/\//::/g; + $module =~ s/\.pm$//g; + return $module; +} + +sub register_module { + my ($class, $package, $file) = @_; + my $module = package_to_module($package); + + if ($file) { + $INCS{$module} = $file; + } + else { + $file = $INC{$module}; + return unless $file; + $INCS{$module} = $file; + } +} + +sub unregister_module { + my ($class, $package) = @_; + my $module = package_to_module($package); + delete $INCS{$module}; +} + +# the first argument is: +# $c if invoked as 'PerlPreConnectionHandler' +# $r if invoked as 'PerlInitHandler' +sub handler { + my $o = shift; + $o = $o->base_server if ref($o) eq 'Apache2::Connection'; + + my $DEBUG = ref($o) && (lc($o->dir_config("ReloadDebug") || '') eq 'on'); + + my $TouchFile = ref($o) && $o->dir_config("ReloadTouchFile"); + + my $ConstantRedefineWarnings = ref($o) && + (lc($o->dir_config("ReloadConstantRedefineWarnings") || '') eq 'off') + ? 0 : 1; + + my $TouchModules; + + if ($TouchFile) { + warn "Checking mtime of $TouchFile\n" if $DEBUG; + my $touch_mtime = (stat $TouchFile)[9] || return Apache2::Const::OK; + return Apache2::Const::OK unless $touch_mtime > $TouchTime; + $TouchTime = $touch_mtime; + open my $fh, $TouchFile or die "Can't open '$TouchFile': $!"; + $TouchModules = <$fh>; + chomp $TouchModules if $TouchModules; + } + + if (ref($o) && (lc($o->dir_config("ReloadAll") || 'on') eq 'on')) { + *Apache2::Reload::INCS = \%INC; + } + else { + *Apache2::Reload::INCS = \%INCS; + my $ExtraList = + $TouchModules || + (ref($o) && $o->dir_config("ReloadModules")) || + ''; + my @extra = split /\s+/, $ExtraList; + foreach (@extra) { + if (/(.*)::\*$/) { + my $prefix = $1; + $prefix =~ s/::/\//g; + foreach my $match (keys %INC) { + if ($match =~ /^\Q$prefix\E/) { + $Apache2::Reload::INCS{$match} = $INC{$match}; + } + } + } + else { + Apache2::Reload->register_module($_); + } + } + } + + my $ReloadDirs = ref($o) && $o->dir_config("ReloadDirectories"); + my @watch_dirs = split(/\s+/, $ReloadDirs||''); + + my @changed; + foreach my $key (sort { $a cmp $b } keys %Apache2::Reload::INCS) { + my $file = $Apache2::Reload::INCS{$key}; + + next unless defined $file; + next if @watch_dirs && !grep { $file =~ /^$_/ } @watch_dirs; + warn "Apache2::Reload: Checking mtime of $key\n" if $DEBUG; + + my $mtime = (stat $file)[9]; + + unless (defined($mtime) && $mtime) { + for (@INC) { + $mtime = (stat "$_/$file")[9]; + last if defined($mtime) && $mtime; + } + } + + warn("Apache2::Reload: Can't locate $file\n"), next + unless defined $mtime and $mtime; + + unless (defined $Stat{$file}) { + $Stat{$file} = $^T; + } + + if ($mtime > $Stat{$file}) { + push @changed, $key; + } + $Stat{$file} = $mtime; + } + + #First, let's unload all changed modules + foreach my $module (@changed) { + my $package = module_to_package($module); + ModPerl::Util::unload_package($package); + } + + #Then, let's reload them all, so that module dependencies can satisfy + #themselves in the correct order. + foreach my $module (@changed) { + my $package = module_to_package($module); + require $module; + warn("Apache2::Reload: process $$ reloading $package from $module\n") + if $DEBUG; + } + + return Apache2::Const::OK; +} + +1; +__END__ + +=head1 NAME + +Apache2::Reload - Reload changed modules + +=head1 SYNOPSIS + +In httpd.conf: + + PerlInitHandler Apache2::Reload + PerlSetVar ReloadAll Off + +Then your module: + + package My::Apache::Module; + + use Apache2::Reload; + + sub handler { ... } + + 1; + +=head1 DESCRIPTION + +This module is two things. First it is an adaptation of Randal +Schwartz's Stonehenge::Reload module that attempts to be a little +more intuitive and makes the usage easier. Stonehenge::Reload was +written by Randal to make specific modules reload themselves when +they changed. Unlike Apache::StatINC, Stonehenge::Reload only checked +the change time of modules that registered themselves with +Stonehenge::Reload, thus reducing stat() calls. Apache::Reload also +offers the exact same functionality as Apache::StatINC, and is thus +designed to be a drop-in replacement. Apache::Reload only checks modules +that register themselves with Apache::Reload if you explicitly turn off +the StatINC emulation method (see below). Like Apache::StatINC, +Apache::Reload must be installed as an Init Handler. + +=head2 StatINC Replacement + +To use as a StatINC replacement, simply add the following configuration +to your httpd.conf: + + PerlInitHandler Apache::Reload + +=head2 Register Modules Implicitly + +To only reload modules that have registered with Apache::Reload, +add the following to the httpd.conf: + + PerlInitHandler Apache::Reload + PerlSetVar ReloadAll Off + # ReloadAll defaults to On + +Then any modules with the line: + + use Apache2::Reload; + +Will be reloaded when they change. + +=head2 Register Modules Explicitly + +You can also register modules explicitly in your httpd.conf file that +you want to be reloaded on change: + + PerlInitHandler Apache2::Reload + PerlSetVar ReloadAll Off + PerlSetVar ReloadModules "My::Foo My::Bar Foo::Bar::Test" + +Note that these are split on whitespace, but the module list B<must> +be in quotes, otherwise Apache tries to parse the parameter list. + +=head2 Special "Touch" File + +You can also set a file that you can touch() that causes the reloads to be +performed. If you set this, and don't touch() the file, the reloads don't +happen. This can be a great boon in a live environment: + + PerlSetVar ReloadTouchFile /tmp/reload_modules + +Now when you're happy with your changes, simply go to the command line and +type: + + touch /tmp/reload_modules + +And your modules will be magically reloaded on the next request. This option +works in both StatINC emulation mode and the registered modules mode. + +=head1 PSUEDOHASHES + +The short summary of this is: Don't use psuedohashes. Use an array with +constant indexes. Its faster in the general case, its more guaranteed, and +generally, it works. + +The long summary is that I've done some work to get this working with +modules that use psuedo hashes, but its still broken in the case of a +single module that contains multiple packages that all use psuedohashes. + +So don't do that. + +=head1 AUTHOR + +Matt Sergeant, matt@sergeant.org + +=head1 MAINTAINERS + +the mod_perl developers, dev@perl.apache.org + +=head1 SEE ALSO + +Apache::StatINC, Stonehenge::Reload + +=cut Index: MANIFEST =================================================================== --- MANIFEST (revision 558376) +++ MANIFEST (working copy) @@ -3,4 +3,9 @@ README LICENSE lib/Apache/Reload.pm +lib/Apache2/Reload.pm +t/reload.t +t/lib/Apache/TestReload.pm +t/lib/Apache2/TestReload.pm RELEASE +Changes Index: Makefile.PL =================================================================== --- Makefile.PL (revision 558376) +++ Makefile.PL (working copy) @@ -38,9 +38,9 @@ require ModPerl::MM; ModPerl::MM::WriteMakefile( %common_opts, - VERSION_FROM => "lib/Apache/Reload.pm", - NAME => "Apache::Reload", - ABSTRACT_FROM => 'lib/Apache/Reload.pm', + VERSION_FROM => "lib/Apache2/Reload.pm", + NAME => "Apache2::Reload", + ABSTRACT_FROM => 'lib/Apache2/Reload.pm', ); }
Index: Changes =================================================================== --- Changes (revision 558376) +++ Changes (working copy) @@ -6,8 +6,18 @@
=over 1
-=item 0.08-dev +=item 0.10-dev
+Apache::Reload and Apache2::Reload bundled for CPAN release +This release incorporates unreleased changes in 0.08 and 0.09 +[Fred Moyer <fred@redhotpenguin.com>] + +=item 0.09 + +Apache2::Reload was part of mod_perl2 core + +=item 0.08 + Remove modified modules before reloading them [Javier Ureuen Val]
Index: README =================================================================== --- README (revision 558376) +++ README (working copy) @@ -101,6 +101,10 @@ AUTHOR Matt Sergeant, matt@sergeant.org
+MAINTAINERS + +the mod_perl developers, dev@perl.apache.org + SEE ALSO Apache::StatINC, Stonehenge::Reload
|
| | 3 answer | Add comment |
Thursday, 6 December 2007
|
| SUPERUSER RIGHTS Lalit 18:56:57 |
| | Hi,
I want to stop / start / pause/ resume / restart a daemon which is created by us using PHP and APACHE 2.
Well i used posix_kill under PHP but this works on if the owner of the daemon and APACHE is same. how can i make the APACHE to run as root or is there any other way to do so.
Rgds
--------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org " from the digest: users-digest-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org
|
| | 2 answer | Add comment |
Saturday, 1 December 2007
|
| $r->headers_out->set('Server' => 'foo'); Fred Moyer 07:03:17 |
| | Greetings,
I'm trying to figure out where in the mod_perl innards I need to look to map the accessor for the Server header.
I've changed core.c in httpd so that set_banner() is deactivated. This results in a Server header of 'mod_perl/2.0.4-dev Perl/v5.8.8', so I think that change is all that is needed to keep apache from overwriting the header.
I don't see anything in xs/maps/apache2_structures.map so I figure that I have to add server in there somehow?
Thanks in advance,
Fred
|
| | 2 answer | Add comment |
Monday, 26 November 2007
|
| [ANNOUNCE] Apache-Test 1.30 Fred Moyer 22:49:41 |
| | Greetings,
Version 1.30 of Apache::Test will be coming to a CPAN mirror near you shortly.
md5: f4e34be218a25048def5a4f797ae7cb9
Summary of changes in version 1.30:
Added t_write_test_lib for temporary testing packages [Fred Moyer <fred@redhotpenguin.com>]
Fix syntax error in generated PHP files t/conf/*.php.in [Philippe M. Chiasson]
Add bwshare.so to the list of modules to not inherit b/c it rate limits requests to less then that of a test suite. PR: 25548 [imacat <imacat@mail.imacat.idv.tw>]
Add EXTRA_CFLAGS to c-module building if defined in the environment [Geoffrey Young]
Enjoy!
- the modperl development team
|
| | Add comment |
|
| [RELEASE CANDIDATE] Apache-Test-1.30 RC1 Fred Moyer 21:08:19 |
| | Greetings,
A release candidate for Apache::Test is now available:
http://people.apache.org/~phred/Apache-Test-1.30-RC1.tar.gz
Please take a moment to download, build, and report test failures or success back to the list. Thanks!
Summary of changes in this version:
Added t_write_test_lib for temporary testing packages [Fred Moyer <fred@redhotpenguin.com>]
Fix syntax error in generated PHP files t/conf/*.php.in [Philippe M. Chiasson]
Add bwshare.so to the list of modules to not inherit b/c it rate limits requests to less then that of a test suite. PR: 25548 [imacat <imacat@mail.imacat.idv.tw>]
Add EXTRA_CFLAGS to c-module building if defined in the environment [Geoffrey Young]
|
| | 10 answers | Add comment |
Friday, 16 November 2007
|
| Stacked handlers bug unit test Fred Moyer 01:04:23 |
| | Hi Phillipe
Here is the unit test I was telling you about for the bug I found where pushing handlers onto a different phase of the request cycle causes the push to act as a set_handler instead. I dug into the guts of modperl_handler.c looking for what is causing this but I'm still green in dealing with the mod_perl internals.
I'll track you down later and demonstrate this issue.
- Fred
Index: t/hooks/TestHooks/stacked_handlers2.pm =================================================================== --- t/hooks/TestHooks/stacked_handlers2.pm (revision 584452) +++ t/hooks/TestHooks/stacked_handlers2.pm (working copy) @@ -45,6 +45,17 @@ return Apache2::Const::SERVER_ERROR; }
+sub push_fixup_handler { + + my $r = shift; + + $r->push_handlers(PerlFixupHandler => \&ok); + + callback($r); + + return Apache2::Const::OK; +} + sub push_handlers {
my $r = shift; @@ -150,7 +161,8 @@
PerlModule TestHooks::stacked_handlers2
- # all 2 run + # all 3 run + PerlPostReadRequestHandler TestHooks::stacked_handlers2::push_fixup_handler PerlPostReadRequestHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::ok
# 1 run, 1 left behind
Index: t/hooks/stacked_handlers2.t =================================================================== --- t/hooks/stacked_handlers2.t (revision 584452) +++ t/hooks/stacked_handlers2.t (working copy) @@ -18,7 +18,7 @@
plan tests => 1;
-my $expected = q!ran 2 PerlPostReadRequestHandler handlers +my $expected = q!ran 3 PerlPostReadRequestHandler handlers ran 1 PerlTransHandler handlers ran 1 PerlMapToStorageHandler handlers ran 4 PerlHeaderParserHandler handlers @@ -26,7 +26,7 @@ ran 2 PerlAuthenHandler handlers ran 2 PerlAuthzHandler handlers ran 1 PerlTypeHandler handlers -ran 4 PerlFixupHandler handlers +ran 3 PerlFixupHandler handlers ran 2 PerlResponseHandler handlers ran 2 PerlOutputFilterHandler handlers!;
|
| | Add comment |
Thursday, 15 November 2007
|
| incorrect apr linking? Geoffrey Young 20:05:37 |
| | hi all
so, I noticed here at apachecon that APR.so is linked against libapr in my /usr/lib from a pre-existing fedora rpm and not the libapr that comes with httpd.
then gozer discovered that httpd now (I don't know when it changed) includes a --with-included-apr configure flag which you need to explicitly pass in order for httpd to use the bundled apr in it's source. otherwise, it uses the system apr.
so I tried it. I compiled httpd with --with-included-apr and verified that the httpd shared objects are using it with ldd. I install httpd.
then I build mod_perl... and see that APR.so is _still_ linked against my system apr and not the /usr/local/apache apr I just installed.
the installed apr-1-config supplies _some_ of the correct linker flags:
$ /usr/local/apache-prefork/bin/apr-1-config --link-ld -L/usr/local/apache-prefork/lib -lapr-1
but it's missing stuff like -rpath that would allow me (us) to link against it without messing with ldconfig.
anyway... I don't know if this is a real problem, one I'm making up, apr-1-config's problem, or whatever. but maybe someone (hi gozer!) who groks this stuff can take a look and try to replicate it?
--Geoff
|
| | Add comment |
|
| newbie question Sourian 09:24:14 |
| | Hi list!
This is my first post, so be nice ;)
I have an Apache server, running on a RedHat 8.0.
I use it for testing various projects I made (I am a student), and I have this issue: In the /var/www/html/ directory I made a symlink ~/work pointing to a directory from /home/userdir/...
My problem is that although I can see the test page when I enter IP into browser, when I write http://xxx.xxx.xxx.xxx/work I get this error message:
Forbidden
You don't have permission to access /work/ on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request. Apache/2.0.40 Server at _default_ Port 80
I've studied the manuals for Apache 2.x, but I couldn't figure it out. I've let the server follow symlinks, even if the owner of the folder differ, but the error remain.
Thanks for your time. Sorry if I bothered you.
Regards, Sourian
--------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org " from the digest: users-digest-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org
|
| | 284 answer | Add comment |
Wednesday, 14 November 2007
|
| about removing the last hash lookup in the interp management code Torsten Foertsch 19:34:48 |
| | Hi Philippe,
in the threading branch this line and the corresponding get in modperl_interp_pool_select() are the last occurrences of hash lookups in the interp management.
(void)apr_pool_userdata_set((void *)r, "MODPERL_R", NULL, r->pool);
I am thinking of removing it. But it requires a extension to the request pool and changes to the httpd.
The idea is to introduce typed pools with extensions. Something like
int type = apr_pool_type_register(void);
int ext = apr_pool_extension_register(int type, size_t size);
apr_pool_t *pool = apr_pool_create_typed_pool(int type);
void *ptr = apr_pool_get_extension(apr_pool_t *pool, int ext);
A call to apr_pool_type_register adds an element to some internal apr_array_header_t and returns the index of the new element.
apr_pool_extension_register gets this index (or pool type) and increments said array element by "size" rounded up to a proper alignment and returns the value of the array element before the increment.
These 2 functions are to be called during initialization.
Then at runtime when a typed pool is needed pool structure is allocated plus at the end of the pool enough space to hold all extensions. To access a registered extension one calls apr_pool_get_extension which returns a pointer to the amount of space registered during initialization.
In the httpd this would mean at init time:
extern int req_pool_type; extern int conn_pool_type; ... static int req_pool_type = apr_pool_type_register(); static int conn_pool_type = apr_pool_type_register(); ...
Then the req pool creation is converted to
req_pool = apr_pool_create_typed_pool( req_pool_type )
In mod_perl this could look like:
INIT:
static my_req_pool_ext = apr_pool_extension_register(req_pool_type, sizeof(void*));
RUNTIME:
void *ptr = apr_pool_get_extension(pool, my_req_pool_ext); *ptr = (void *)r; /* instead of apr_pool_userdata_set */
I hope it is clear what I mean. I think not only mod_perl can benefit these pool extensions. Apache would have to export the main pool types like req_pool_type and conn_pool_type. Modules can add their own pool types.
Does that make sense? What are the odds on getting it into apr and apache?
Torsten
|
| | Add comment |
Monday, 12 November 2007
|
| Anybody going to be @ ApacheCon US 2007 Atlanta? Philippe M. Chiasson 23:15:45 |
| | It's starting tomorrow, and I am going to be there.
Anybody else will be around and want to connect, just lemme know by email.
There is also a mod_perl BOF scheduled on Thursday ( see http://wiki.apache.org/apachecon/BirdsOfaFeatherUs07 for more details)
In any case, see you all there!
-- Philippe M. Chiasson GPG: F9BFE0C2480E7680 1AE53631CB32A107 88C3A5A5 http://gozer.ectoplasm.org/ m/gozer\@(apache|cpan|ectoplasm)\.org/
|
| | 2 answer | Add comment |
Thursday, 8 November 2007
|
| (unknown) Ketvin 19:04:59 |
| | ](¥Ê' ¦ºxj?¨'gLj)Rq©çz²'~æj?¨ù^jÇ¢{ZrÛax~梷¢ú+«b¢uÒX¢pk§ÆÒvpatÆ¢'w«§vÚyÉ^juÌj)Rq©çz±k¢i¶ø§²)brÜ¢i²]*ZxiçZ륧!z×´ÿ]4ÓóR¹¸ÞrÛ¬z»!¶Ú]ºZµçè®jk¡¹^
?1¥Íа4(4(4)$
´É¹¹¥¹¡ÑÑ?¸À°Á°Ô´´À°µåÍŰ´Ì¸?̸$´ÕÍ¥¹¡Ñµ°½´Ñ¼ÕÁ
Ñ¡¥¹Ì°Ñ¡½É´
±±ÌÍÉ¥Áа¹¥Ð¥¹Ù¤µµåÍŰ
¹ÕÁ
ÑÑ¡µåÍŰ
Ñ
͸4(4)I¹±ä¤´
¥¹Áɽ±´Ý¥ÑÕÁ
Ñ¥¹¸]¡$¡
Ù?À¥ÑµÌ½¸Ñ¡½É´°Ñ¡¸Ñ¡ÕÁ
Ñ¥¹¥ÌÙÉä
Íа½¹±¥¬½¸Ñ¡ÍÕµ¥ÐÕÑѽ¸°Ñ¡±¥ÍÐÝ
ÌÕÁ
Ñ
н¹¸4)Õаݡ¸$
¹µ½É¥´°?Å¥Ñ̰½¹¥¥¹½¸ÕÁ
Ѱ¥Ðѽ½¬½ÉÙ?Ѽ±½
¸¹©ÕÍС
±Ñ
ÐÑ¡Éݥѽ±±½Ý¥¹µÍÍ
¸
Á
¡½¥±¸4(4)m]5
?ÌÄÄ?èÐÀè?Ü?ÀÀÑtmÉɽÉtm±¥¹ÐÄä?¸Ä?¸?¸t?ÀÔÀÜ¥Q¡Ñ¥µ½ÕÐÍÁ¥¥¡
ÌáÁ¥Éè
Á}½¹Ñ¹Ñ}±¹Ñ¡}¥±Ñ?è
Á}ÕÑ}É
¤
¥±ÉÉ?è¡ÑÑÀè¼¼Ää?¸Ä?¸?¸Ä½
µ¥¸½ÕÁ
ѹ¤4(4)]¡¤Éµ½Ù½¹¥Ñ´°½µ?À¥ÑµÌ
¸°Ñ¡¸ÑÕÁ
Ñ¥¹½µÙÉä
Íи4(4)$ÍÕÍÁÐͽµÑ¡¥¹Ýɽ¹Ý¥ÑÑ¡½¹¥±°Ð¤©ÕÍн¸Ð¹½ÜÝ¡¥½¹¼¡¬¸¸
¹å½ä¡±Àµ½ÐüüQ!
¹Ì4(4(4(4(4(4(4(4(4(4((¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨½¹¥Ñ¥
±¥Ñä9½Ñ¥¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨)Q¡¥ÌµÍÍ
½¹Ñ
¥¹Ì½¹¥¹Ñ¥
°¥¹½Éµ
Ñ¥½¸
¹¥Ì¥¹Ñ¹½¹±ä½?)Ñ¡¥¥Ù¥Õ
°
µ¸%?å½Ô
ɹ½ÐÑ¡¹
µ
ÉÍÍå½ÔÍ¡½Õ±)¹½Ð¥Íµ¥¹
Ѱ¥ÍÑÉ¥Õѽ?½Á䡥̵µ
¥¸A±
͹½Ñ¥äÑ¡)͹?¥µ¥
ѱääµµ
¥°¥?å½Ô¡
É¥ÙÑ¡¥Ìµµ¥°ä)µ¥ÍÑ
¹±ÑÑ¡¥Ìµµ
¥°É´å½Õ?ÍåÑ´¸(¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨( |
| | 766 answers | Add comment |
Tuesday, 6 November 2007
|
| [Fwd: [rt.cpan.org #30061] $r->pnotes stores aliases not copies so
is subject to action at a dis Geoffrey Young 19:56:44 |
| | heh, didn't this just come up?
gozer: I did find the documentation, and I posted it to the rt ticket.
I guess we don't have a historical way of managing rt tickets, but I'm tempted to resolve this one as "rejected" (though the thought of rejecting tim isn't a pleasant one ;)
--Geoff
-------- Original Message -------- Subject: [rt.cpan.org #30061] $r->pnotes stores aliases not copies so is subject to action at a distance Date: Wed, 17 Oct 2007 10:58:22 -0400 From: Tim_Bunce via RT <bug-mod_perl@rt.cpan.org> Reply-To: bug-mod_perl@rt.cpan.org To: undisclosed-recipients:; References: <RT-Ticket-30061@rt.cpan.org>
Wed Oct 17 10:57:58 2007: Request 30061 was acted upon. Transaction: Ticket created by TIMB Queue: mod_perl Subject: $r->pnotes stores aliases not copies so is subject to action at a distance Broken in: (no value) Severity: Important Owner: Nobody Requestors: TIMB@cpan.org Status: new Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=30061 >
This code:
$x = 42; $r->pnotes( 'foo', $x ); ++$x; warn $r->pnotes( 'foo', $x );
should print the value that was stored, 42, but it actually prints 43!
The value stored has been modified by action at a distance. *Not good*
This can cause some very hard to debug problems, where values stored in pnotes change for no readily apparent reason. I know, I've spent way too long doing just that before I identified this as the cause.
A workaround for affected code is to assign to a temporary variable so the alias taken by pnotes isn't an alias for the orginal value:
$r->pnotes( 'foo', my $tmp = $x )
The minimal fix is to change:
hv_store(cfg->pnotes, key, len, SvREFCNT_inc(val), FALSE);
in pnotes in src/modules/perl/Apache.xs to something more like
SV **svp = hv_fetch(cfg->pnotes, key, len, TRUE); sv_setsv(*svp, val);
with a little more work you could eliminate the earlier hv_exists and hv_fetch by doing
SV **svp = hv_fetch(cfg->pnotes, key, len, (val) ? TRUE : FALSE);
and working with svp.
Tim Bunce.
|
| | 6 answers | Add comment |
Wednesday, 31 October 2007
|
| [PATCH] rand.c for win32 Xi Wang 00:10:31 |
| | Hi,
In apr/misc/win32/rand.c, it failed to compile here with the error: undeclared identifier 'HCRYPTPROV', for lack of the definition of _WIN32_WINNT in wincrypt.h. Reordering the headers (wincrypt.h after apr.h) would be OK.
-Xi
Index: rand.c =================================================================== --- rand.c (revision 447310) +++ rand.c (working copy) @@ -14,15 +14,14 @@ * limitations under the License. */
-#include <windows.h> -#include <wincrypt.h> #include "apr.h" #include "apr_private.h" #include "apr_general.h" #include "apr_portable.h" #include "apr_arch_misc.h" +#include <windows.h> +#include <wincrypt.h>
- APR_DECLARE(apr_status_t) apr_generate_random_bytes(unsigned char * buf, apr_size_t length) {
|
| | 2 answer | Add comment |
Tuesday, 30 October 2007
|
| trying modperl with perl 5.10.0 Torsten Foertsch 21:07:55 |
| | Hi,
while trying modperl with perl 5.10.0 I got 2 nice coredumps in the init code.
1) this is with perfork mpm:
#0 0x08601de4 in ?? () #1 0x407dda91 in Perl_mg_free (my_perl=0x85fb4f0, sv=0x85ffbdc) at mg.c:490 #2 0x4085a5ba in Perl_sv_clear (my_perl=0x85fb4f0, sv=0x85ffbdc) at sv.c:5154 #3 0x4085b5b6 in Perl_sv_free2 (my_perl=0x85fb4f0, sv=0x85ffbdc) at sv.c:5363 #4 0x4085b4e3 in Perl_sv_free (my_perl=0x85fb4f0, sv=0x85ffbdc) at sv.c:5342 #5 0x40808ce7 in perl_destruct (my_perl=0x85fb4f0) at perl.c:1013 #6 0x406bbe58 in modperl_perl_destruct (perl=0x85fb4f0) at modperl_perl.c:176 #7 0x40691fa6 in modperl_interp_destroy (interp=0x8616608) at modperl_interp.c:146 #8 0x406921a4 in modperl_interp_pool_destroy (data=0x85f54a8) at modperl_interp.c:202 #9 0x401730d0 in run_cleanups (cref=0x85f7508) at memory/unix/apr_pools.c:2034 #10 0x40172599 in apr_pool_destroy (pool=0x85f74f8) at memory/unix/apr_pools.c:727 #11 0x401724ac in apr_pool_clear (pool=0x80b90a8) at memory/unix/apr_pools.c:686 #12 0x0806734d in main (argc=158288056, argv=0x8b10c40) at main.c:680
2) and with worker mpm
#0 0x4085ea3a in Perl_sv_2mortal (my_perl=0x982dd90, sv=0xa0d5aec) at sv.c:6961 #1 0x407d4770 in Perl_mg_get (my_perl=0x982dd90, sv=0xa0d5aec) at mg.c:191 #2 0x4083a17b in Perl_sv_2pv_flags (my_perl=0x982dd90, sv=0xa0d5aec, lp=0xbf920a3c, flags=2) at sv.c:2584 #3 0x40862fa7 in Perl_sv_pvn_force_flags (my_perl=0x982dd90, sv=0xa0d5aec, lp=0xbf920c44, flags=2) at sv.c:7638 #4 0x408674d4 in Perl_sv_vcatpvfn (my_perl=0x982dd90, sv=0xa0d5aec, pat=0x40a1cfa3 "panic: memory wrap", patlen=18, args=0xbf920f3c, svargs=0x0, svmax=0, maybe_tainted=0x0) at sv.c:8473 #5 0x40866f87 in Perl_sv_vsetpvfn (my_perl=0x982dd90, sv=0xa0d5aec, pat=0x40a1cfa3 "panic: memory wrap", patlen=18, args=0xbf920f3c, svargs=0x0, svmax=0, maybe_tainted=0x0) at sv.c:8378 #6 0x407c7851 in Perl_vmess (my_perl=0x982dd90, pat=0x40a1cfa3 "panic: memory wrap", args=0xbf920f3c) at util.c:1161 #7 0x407c999b in S_vdie_croak_common (my_perl=0x982dd90, pat=0x40a1cfa3 "panic: memory wrap", args=0xbf920f3c, msglen=0xbf920efc, utf8=0xbf920ef8) at util.c:1302 #8 0x407ca165 in Perl_vcroak (my_perl=0x982dd90, pat=0x40a1cfa3 "panic: memory wrap", args=0xbf920f3c) at util.c:1383 #9 0x407ca501 in Perl_croak_nocontext (pat=0x40a1cfa3 "panic: memory wrap") at util.c:1404 #10 0x408b5935 in Perl_tmps_grow (my_perl=0x982dd90, n=128) at scope.c:141 #11 0x4085ea16 in Perl_sv_2mortal (my_perl=0x982dd90, sv=0xa0d5aec) at sv.c:6960 #12 0x407d4770 in Perl_mg_get (my_perl=0x982dd90, sv=0xa0d5aec) at mg.c:191 #13 0x4083a17b in Perl_sv_2pv_flags (my_perl=0x982dd90, sv=0xa0d5aec, lp=0xbf92117c, flags=2) at sv.c:2584 #14 0x40862fa7 in Perl_sv_pvn_force_flags (my_perl=0x982dd90, sv=0xa0d5aec, lp=0xbf921384, flags=2) at sv.c:7638 #15 0x408674d4 in Perl_sv_vcatpvfn (my_perl=0x982dd90, sv=0xa0d5aec, pat=0x409ef64c "Bizarre SvTYPE [%ld]", patlen=20, args=0xbf921680, svargs=0x0, svmax=0, maybe_tainted=0x0) at sv.c:8473 #16 0x40866f87 in Perl_sv_vsetpvfn (my_perl=0x982dd90, sv=0xa0d5aec, pat=0x409ef64c "Bizarre SvTYPE [%ld]", patlen=20, args=0xbf921680, svargs=0x0, svmax=0, maybe_tainted=0x0) at sv.c:8378 #17 0x407c7851 in Perl_vmess (my_perl=0x982dd90, pat=0x409ef64c "Bizarre SvTYPE [%ld]", args=0xbf921680) at util.c:1161 #18 0x407c999b in S_vdie_croak_common (my_perl=0x982dd90, pat=0x409ef64c "Bizarre SvTYPE [%ld]", args=0xbf921680, msglen=0xbf92163c, utf8=0xbf921638) at util.c:1302 #19 0x407ca165 in Perl_vcroak (my_perl=0x982dd90, pat=0x409ef64c "Bizarre SvTYPE [%ld]", args=0xbf921680) at util.c:1383 #20 0x407ca532 in Perl_croak (my_perl=0x982dd90, pat=0x409ef64c "Bizarre SvTYPE [%ld]") at util.c:1435 #21 0x4086ed47 in Perl_sv_dup (my_perl=0x982dd90, sstr=0x8499418, param=0xbf921ba4) at sv.c:10083 #22 0x4086d06c in Perl_mg_dup (my_perl=0x982dd90, mg=0x80c0b18, param=0xbf921ba4) at sv.c:9774 #23 0x4086f1cd in Perl_sv_dup (my_perl=0x982dd90, sstr=0x85fe784, param=0xbf921ba4) at sv.c:10135 #24 0x408757de in perl_clone (proto_perl=0x85fa098, flags=2) at sv.c:11255 #25 0x40689d6a in modperl_interp_new (mip=0x85f4050, perl=0x85fa098) at modperl_interp.c:80 #26 0x4068a208 in interp_pool_grow (tipool=0x8656f20, data=0x85f4050) at modperl_interp.c:212 #27 0x4068b4f2 in modperl_tipool_init (tipool=0x8656f20) at modperl_tipool.c:187 #28 0x40688888 in modperl_init_clones (s=0x80c0b18, p=0x80bb0a8) at mod_perl.c:528 #29 0x40688db2 in modperl_hook_post_config_last (pconf=0x80bb0a8, plog=0x80e9160, ptemp=0x80eb168, s=0x80c0b18) at mod_perl.c:725 #30 0x0807da50 in ap_run_post_config (pconf=0x80bb0a8, plog=0x80e9160, ptemp=0x80eb168, s=0x80c0b18) at config.c:91 #31 0x0806746f in main (argc=Cannot access memory at address 0xabababab ) at main.c:670
$ perl -V Summary of my perl5 (revision 5 version 10 subversion 0 patch 32199) configuration: Platform: osname=linux, osvers=2.6.22.9-0.4-default, archname=i686-linux-thread-multi uname='linux opi 2.6.22.9-0.4-default #1 smp 20071005 21:32:04 utc i686 i686 i386 gnulinux ' config_args='-des -Doptimize=-g -Dcccdlflags=-fPIC -Dusethreads -Duseshrplib -Uusemymalloc' hint=recommended, useposix=true, d_sigaction=define 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='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-g', cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='4.2.1 (SUSE Linux)', 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 -lpthread -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=/lib/libc-2.6.1.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.6.1' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/local/lib/perl5/5.10.0/i686-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared -g -L/usr/local/lib'
Characteristics of this binary (from libperl): Compile-time options: DEBUGGING MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP PERL_TRACK_MEMPOOL USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Locally applied patches: DEVEL Built under linux Compiled at Oct 29 2007 09:55:06 %ENV: PERL5LIB="/opt/apache22-worker/mod_perl" @INC: /opt/apache22-worker/mod_perl /usr/local/lib/perl5/5.10.0/i686-linux-thread-multi /usr/local/lib/perl5/5.10.0 /usr/local/lib/perl5/site_perl/5.10.0/i686-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 .
|
| | Add comment |
|
| Thanks Gman 18:20:12 |
| | bitchen it works now, i don't know what i missed but thanks to everyone this has been bugging me for over a month.
"Gman": The Local Trouble Maker Owner: The Edge Internet Radio
--------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org " from the digest: users-digest-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org
|
| | 88 answers | Add comment |
Saturday, 27 October 2007
|
| [Fwd: [rt.cpan.org #30300] breakage on perl built with -Duserelocateableinc] Geoffrey Young 20:27:17 |
| |
-------- Original Message -------- Subject: [rt.cpan.org #30300] breakage on perl built with -Duserelocateableinc Date: Sat, 27 Oct 2007 11:27:17 -0400 From: Andreas Koenig via RT <bug-mod_perl@rt.cpan.org> Reply-To: bug-mod_perl@rt.cpan.org To: undisclosed-recipients:; References: <RT-Ticket-30300@rt.cpan.org>
Sat Oct 27 11:27:16 2007: Request 30300 was acted upon. Transaction: Ticket created by ANDK Queue: mod_perl Subject: breakage on perl built with -Duserelocateableinc Broken in: 1.30 Severity: Normal Owner: Nobody Requestors: ANDK@cpan.org Status: new Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=30300 >
Just want to get the word out to all interested parties and victims of this "bug".
I built my recent perls with the option -Drelocateableinc. This option is only available with upcoming 5.10 and it allows the users to move their perls around in the filesystem together with their libraries.
But with this option turned on mod_perl-1.30 is unable to start a server. It spits out the amazing error message:
Can't locate lib.pm in @INC (@INC contains: ...
I have no idea how wide spread the use of relocateableinc will become and if this is a relevant bug or not. Just want to let you know that this needs to be addressed somehow.
Thanks,
|
| | Add comment |
Tuesday, 23 October 2007
|
| [Fwd: Cron <perlwww@minotaur> /home/perlwww/apache.org/modperl-docs/bin/site_build_index]
(fw Fred Moyer 23:12:26 |
| | I'm guessing that this has something to do with the recent systems upgrade? Any ideas on who to contact to get this fixed? I don't have sudo on minotaur.
- Fred
---------- Forwarded message ---------- Date: Tue, 23 Oct 2007 12:10:06 -0700 (PDT) From: Fred Moyer <fred@redhotpenguin.com> To: fred@taperfriendlymusic.org Subject: [Fwd: Cron <perlwww@minotaur> /home/perlwww/apache.org/modperl-docs/bin/site_build_index]
---------------------------- Original Message ---------------------------- Subject: Cron <perlwww@minotaur> /home/perlwww/apache.org/modperl-docs/bin/site_build_index From: "Cron Daemon" <perlwww@apache.org> Date: Mon, October 22, 2007 11:15 pm To: docs-dev@perl.apache.org --------------------------------------------------------------------------
Can't load '/home/perlwww/lib/perl5/site_perl/auto/Data/Dumper/Dumper.so' for module Data::Dumper: /home/perlwww/lib/perl5/site_perl/auto/Data/Dumper/Dumper.so: unsupported file layout at /usr/local/lib/perl5/5.8.8/mach/XSLoader.pm line 70. at /home/perlwww/lib/perl5/site_perl/Data/Dumper.pm line 27 Compilation failed in require at /x1/home/perlwww/apache.org/modperl-docs-svn/bin/../lib/DocSet/Util.pm line 11. BEGIN failed--compilation aborted at /x1/home/perlwww/apache.org/modperl-docs-svn/bin/../lib/DocSet/Util.pm line 11. Compilation failed in require at /x1/home/perlwww/apache.org/modperl-docs-svn/bin/../lib/DocSet/RunTime.pm line 12. BEGIN failed--compilation aborted at /x1/home/perlwww/apache.org/modperl-docs-svn/bin/../lib/DocSet/RunTime.pm line 12. Compilation failed in require at /x1/home/perlwww/apache.org/modperl-docs-svn/bin/docset_build line 40. BEGIN failed--compilation aborted at /x1/home/perlwww/apache.org/modperl-docs-svn/bin/docset_build line 40. Can't load '/home/perlwww/lib/perl5/site_perl/auto/HTML/Parser/Parser.so' for module HTML::Parser: /home/perlwww/lib/perl5/site_perl/auto/HTML/Parser/Parser.so: unsupported file layout at /usr/local/lib/perl5/5.8.8/mach/XSLoader.pm line 70. at /home/perlwww/lib/perl5/site_perl/HTML/Parser.pm line 17 Compilation failed in require at /home/perlwww/lib/perl5/site_perl/HTML/LinkExtor.pm line 5. Compilation failed in require at ./spider.pl line 21. BEGIN failed--compilation aborted at ./spider.pl line 21. err: No unique words indexed! .
--------------------------------------------------------------------- To unsubscribe, e-mail: docs-dev-unsubscribe@perl.apache.org For additional commands, e-mail: docs-dev-help@perl.apache.org
|
| | Add comment |
Wednesday, 17 October 2007
|
| cgi problem Steve Remund 15:30:38 |
| | This is my first post to the list, so be kind!
I have 2 different AIX boxes running the same OS level. On the older one I'm running Apache 1.3.4 and on the newer one I just downloaded 1.3.26. I had several CGI routines that worked fine on the older box, but I can't get them to work on the new one. This is a perl script I use to call an external program which then displays an HTML page. The program builds the page dynamically.
#!/usr/local/bin/perl/usr/local/bin/perl $req = $ENV{"QUERY_STRING"}; open(THEPROG, "| /u1/uv/bin/uv VENDNAME"); print THEPROG $req, "\n"; close(THEPROG);
When I run this on the new machine, I am getting "bad header" messages in the error log. Here's an example:
[Fri Dec 20 14:46:58 2002] [error] [client 192.168.129.214] malformed header fro m script. Bad header=<html>: /usr/local/apache/cgi-bin/srtest [Fri Dec 20 14:51:40 2002] [error] [client 192.168.129.214] malformed header fro m script. Bad header=<HTML>: /usr/local/apache/cgi-bin/HTML.TEST
I can't figure out why my headers are bad. The config files are a little different on the newer version, but as far as I know they are set up the same. I have RTFM but can't figure it out.
Help! TIA
--------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org " from the digest: users-digest-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org
|
| | 24 answer | Add comment |
|