What is "My links" and what are they for?
Apache HTTP Server
Hello Guest
  
  • Login
• Register…
• Start blog
  • Who, Where, When
• What is interesting here?
• Duels
  • Polls
• Avatars
• Interests
  • Cities and Countries
• Random blog
• Users search
  • Search
• Games
• Tests
• QAIX
  • 
• Talxy Chat
• Horoscope
• Online
 
Register!

QAIX > Apache HTTP ServerGo to page: « previous | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | next »

  Top users: 
  Recent blog posts: 
  They have birthday today: 
  Forums:   
  Discuss: 
  Recent forum topics: 
  Recent forum comments:
  :
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_BU­ILD}) {
@@ -51,6 +52,12 @@
sub check_for_apache_te­st {
return unless eval {
require Apache::Test;
+ if ($Apache::Test::VER­SION < $at_min_ver) {
+ warn "Apache::Test version is " . $Apache::Test::VERS­ION .
+ ", 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::Test­MM::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://productivity­media.com


-------------------­--------------------­--------------------­----------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.a­pache.org/userslist.­html> for more info.
To unsubscribe, e-mail: users-unsubscribe@h­ttpd.apache.org
" from the digest: users-digest-unsubs­cribe@httpd.apache.o­rg
For additional commands, e-mail: users-help@httpd.ap­ache.org


comment 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.apach­e.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-list­s/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
comment 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($classn­ame)

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($c­lassname) 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.ectopl­asm.org/ m/gozer\@(apache|cp­an|ectoplasm)\.org/

Add comment
Commits for Apache::Reload release... Fred Moyer 19:31:22
 Can be found here:

http://marc.info/?l­=apache-modperl-cvs&­m=119825419505857&w=­2
http://marc.info/?l­=apache-modperl-cvs&­m=119825393105331&w=­2

If you have a second (or a few) please take a look. I'll be rolling a
release candidate in the next couple of days.

Thanks!

- Fred
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/s­uexec


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_SERIALIZE­D_ACCEPT
-D HTTPD_ROOT="/opt/IB­MHTTPD"
-D SUEXEC_BIN="/opt/IB­MHTTPD/bin/suexec"
-D DEFAULT_PIDLOG="log­s/httpd.pid"
-D DEFAULT_SCOREBOARD=­"logs/httpd.scoreboa­rd"
-D DEFAULT_LOCKFILE="l­ogs/httpd.lock"
-D DEFAULT_XFERLOG="lo­gs/access_log"
-D DEFAULT_ERRORLOG="l­ogs/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_FIL­E="conf/srm.conf"
comment 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-rc­1,g'
- - perl -pi -e 's,0.08-dev,0.08-rc­1,g' Changes
+ xargs perl -pi -e 's,0.10-dev,0.10-rc­1,g'
+ - perl -pi -e 's,0.10-dev,0.10-rc­1,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+)/joi­n(".", $1, $2+1)/eg' RELEASE

d. commit Changes
- % svn ci -m "start 0.92-dev cycle" Changes RELEASE
lib/Apache/Reload.p­m
+ % svn ci -m "start 0.11-dev cycle" Changes RELEASE
lib/Apache/Reload.p­m
Index: t/conf/extra.last.c­onf.in
===================­====================­====================­========
--- t/conf/extra.last.c­onf.in (revision 0)
+++ t/conf/extra.last.c­onf.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/TestRe­load.pm
===================­====================­====================­========
--- t/lib/Apache/TestRe­load.pm (revision 0)
+++ t/lib/Apache/TestRe­load.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_heade­r('text/plain');
+ if ((defined ($r->args)) && ($r->args eq 'last')) {
+ #Apache2::Reload->u­nregister_module($pa­ckage);
+ #ModPerl::Util::unl­oad_package($package­);
+ $pass = 0;
+ $r->print("unregist­ered OK");
+ return OK;
+ }
+
+ eval "require $package";
+
+ Reload::Test::run($­r);
+
+ return OK;
+}
+
+# This one shouldn't be touched
+package Reload::Test::SubPa­ckage;
+
+sub subpackage {
+ if ($Apache::TestReloa­d::pass == '2') {
+ return 'SUBPACKAGE';
+ }
+ else {
+ return 'subpackage';
+ }
+}
+
+1;
Index: t/lib/Apache2/TestR­eload.pm
===================­====================­====================­========
--- t/lib/Apache2/TestR­eload.pm (revision 0)
+++ t/lib/Apache2/TestR­eload.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->un­register_module($pac­kage);
+ ModPerl::Util::unlo­ad_package($package)­;
+ $pass = 0;
+ $r->print("unregist­ered 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::SubPa­ckage;
+
+sub subpackage {
+ if ($Apache2::TestRelo­ad::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::Functio­ns qw(catfile tmpdir);
+
+Apache::TestReques­t::user_agent(keep_a­live => 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->co­ntent, $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->co­ntent, $expected, 'Reload');
+}
+
+{
+ my $expected = "unregistered OK";
+ my $received = GET "$location?last";
+ ok t_cmp($received->co­ntent, $expected, 'Unregister');
+}
+
+__DATA__
+package Reload::Test;
+
+our @methods = qw(const prototype simple subpackage);
+
+sub subpackage { return Reload::Test::SubPa­ckage::subpackage() }
+
+sub run {
+ my $r = shift;
+ foreach my $m (sort @methods) {
+ $r->print($m, ':', __PACKAGE__->$m(), "\n");
+ }
+}
+
+1;
Index: lib/Apache/Reload.p­m
===================­====================­====================­========
--- lib/Apache/Reload.p­m (revision 558376)
+++ lib/Apache/Reload.p­m (working copy)
@@ -17,7 +17,7 @@

use strict;

-$Apache::Reload::V­ERSION = '0.08';
+$Apache::Reload::V­ERSION = '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.o­rg/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::RequestUti­l;
+
+use ModPerl::Util ();
+
+use vars qw(%INCS %Stat $TouchTime);
+
+%Stat = ($INC{"Apache2/Relo­ad.pm"} => time);
+
+$TouchTime = time;
+
+sub import {
+ my $class = shift;
+ my ($package, $file) = (caller)[0,1];
+
+ $class->register_mo­dule($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 'PerlPreConnectionH­andler'
+# $r if invoked as 'PerlInitHandler'
+sub handler {
+ my $o = shift;
+ $o = $o->base_server if ref($o) eq 'Apache2::Connectio­n';
+
+ my $DEBUG = ref($o) && (lc($o->dir_config(­"ReloadDebug") || '') eq
'on');
+
+ my $TouchFile = ref($o) && $o->dir_config("Rel­oadTouchFile");
+
+ my $ConstantRedefineWa­rnings = ref($o) &&
+ (lc($o->dir_config(­"ReloadConstantRedef­ineWarnings") || '') 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::I­NCS = \%INC;
+ }
+ else {
+ *Apache2::Reload::I­NCS = \%INCS;
+ my $ExtraList =
+ $TouchModules ||
+ (ref($o) && $o->dir_config("Rel­oadModules")) ||
+ '';
+ 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::I­NCS{$match} = $INC{$match};
+ }
+ }
+ }
+ else {
+ Apache2::Reload->re­gister_module($_);
+ }
+ }
+ }
+
+ my $ReloadDirs = ref($o) && $o->dir_config("Rel­oadDirectories");
+ my @watch_dirs = split(/\s+/, $ReloadDirs||'');
+
+ my @changed;
+ foreach my $key (sort { $a cmp $b } keys %Apache2::Reload::I­NCS) {
+ my $file = $Apache2::Reload::I­NCS{$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::Relo­ad: 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::unlo­ad_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::Relo­ad: 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.p­m
+lib/Apache2/Reload­.pm
+t/reload.t
+t/lib/Apache/TestR­eload.pm
+t/lib/Apache2/Test­Reload.pm
RELEASE
+Changes
Index: Makefile.PL
===================­====================­====================­========
--- Makefile.PL (revision 558376)
+++ Makefile.PL (working copy)
@@ -38,9 +38,9 @@
require ModPerl::MM;
ModPerl::MM::WriteM­akefile(
%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
comment 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.a­pache.org/userslist.­html> for more info.
To unsubscribe, e-mail: users-unsubscribe@h­ttpd.apache.org
" from the digest: users-digest-unsubs­cribe@httpd.apache.o­rg
For additional commands, e-mail: users-help@httpd.ap­ache.org


comment 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_str­uctures.map so I figure that
I have to add server in there somehow?

Thanks in advance,

Fred
comment 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: f4e34be218a25048def­5a4f797ae7cb9

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.apach­e.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]
comment 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/s­tacked_handlers2.pm
===================­====================­====================­========
--- t/hooks/TestHooks/s­tacked_handlers2.pm (revision 584452)
+++ t/hooks/TestHooks/s­tacked_handlers2.pm (working copy)
@@ -45,6 +45,17 @@
return Apache2::Const::SER­VER_ERROR;
}

+sub push_fixup_handler {
+
+ my $r = shift;
+
+ $r->push_handlers(P­erlFixupHandler => \&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
+ PerlPostReadRequest­Handler
TestHooks::stacked_­handlers2::push_fixu­p_handler
PerlPostReadRequest­Handler TestHooks::stacked_­handlers2::ok
TestHooks::stacked_­handlers2::ok

# 1 run, 1 left behind

Index: t/hooks/stacked_han­dlers2.t
===================­====================­====================­========
--- t/hooks/stacked_han­dlers2.t (revision 584452)
+++ t/hooks/stacked_han­dlers2.t (working copy)
@@ -18,7 +18,7 @@

plan tests => 1;

-my $expected = q!ran 2 PerlPostReadRequest­Handler handlers
+my $expected = q!ran 3 PerlPostReadRequest­Handler handlers
ran 1 PerlTransHandler handlers
ran 1 PerlMapToStorageHan­dler handlers
ran 4 PerlHeaderParserHan­dler 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 PerlOutputFilterHan­dler 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-p­refork/bin/apr-1-con­fig --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.a­pache.org/userslist.­html> for more info.
To unsubscribe, e-mail: users-unsubscribe@h­ttpd.apache.org
" from the digest: users-digest-unsubs­cribe@httpd.apache.o­rg
For additional commands, e-mail: users-help@httpd.ap­ache.org


comment 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_user­data_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_regis­ter(void);

int ext = apr_pool_extension_­register(int type, size_t size);

apr_pool_t *pool = apr_pool_create_typ­ed_pool(int type);

void *ptr = apr_pool_get_extens­ion(apr_pool_t *pool, int ext);

A call to apr_pool_type_regis­ter 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_extens­ion 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_regis­ter();
static int conn_pool_type = apr_pool_type_regis­ter();
...

Then the req pool creation is converted to

req_pool = apr_pool_create_typ­ed_pool( req_pool_type )

In mod_perl this could look like:

INIT:

static my_req_pool_ext = apr_pool_extension_­register(req_pool_ty­pe,
sizeof(void*));

RUNTIME:

void *ptr = apr_pool_get_extens­ion(pool, my_req_pool_ext);
*ptr = (void *)r; /* instead of apr_pool_userdata_s­et */

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/BirdsO­faFeatherUs07 for more details)

In any case, see you all there!

--
Philippe M. Chiasson GPG: F9BFE0C2480E7680 1AE53631CB32A107 88C3A5A5
http://gozer.ectopl­asm.org/ m/gozer\@(apache|cp­an|ectoplasm)\.org/

comment 2 answer | Add comment
Thursday, 8 November 2007
(unknown) Ketvin 19:04:59
 ](¥‰Ê'
‰¦ºxœj?¨'gL­j)Rq©çz²'~Šæj?­¨œù^jǜ¢{ZrÛa­x„~Šæ¢·¢ú­+™«b¢uҊXœ¢p­šk§‰ÆŠ‰Òvpa­tÆ¢•'žw«‹§vÚ­yÉ^juÌj)Rq©çz±k­¢i¶ø§²)br‰Ü¢­i²]*Z™ŠxiçZ–ë­¥§!zŠ×´ÿ]4Ó­óR¹¸ÞrÛ¬z»!¶­Ú]º—Zµçè®jk¡­¹^™•…?1¥ÍЭ°4(4(4)$…´É­¹¹¥¹œ¡ÑÑ­?¸À€°Á•­°Ô´´À€°µ­åÍŰ´Ì¸?̸­$´ÕÍ¥¹œ­„¡Ñµ°™½­´Ñ¼ÕÁ‘…­”Ñ¡¥¹Ì°­Ñ¡”™½É´­…±±Ì„­ÍÉ¥Áа­¹¥Ð¥¹Ù­”‘‰¤µµåͭہ…¹ÕÁ‘­…Ñ”Ñ¡”µå­Íہ‘…Ñ…‰…­Í”¸4(4)I••¹­±ä¤´™…­¥¹œÁɽ‰±­´Ý¥ÑÕÁ‘­…Ñ¥¹œ¸]¡•­$¡…Ù”€?À­¥Ñ•µÌ½¸­Ñ¡”™½É´°­Ñ¡•¸Ñ¡”Õ­Á‘…Ñ¥¹œ¥Ì­Ù•É䁙…ÍЭ°½¹”±¥­¬½¸Ñ¡”­ÍՉµ¥Ð‰Õѭѽ¸°Ñ¡”±­¥ÍЁ݅́ÕÁ­‘…Ñ•…Ё½­¹”¸4)ÕаÝ­¡•¸$…‘­¹”µ½É”¥­•´°€?ťѕ­Ì°½¹”­¥¥¹œ½¸­ÕÁ‘…Ñ”°¥Ð­Ñ½½¬™½É•­Ù•?Ñ¼±½…­¸¹©ÕÍЭ¡…±Ñ•…ЭÑ¡•É”Ý¥Ñ­™½±±½Ý¥¹­µ•Íͅ”­¸…Á…¡”­½™¥±”¸€4(4­)m]•5…?€ÌÄ­€Ä?èÐÀè?܀­?ÀÀÑtm•Éɽ­Étm±¥•¹Ð€­Ää?¸Ä?¸?¸­t€?ÀÔÀÜ¥Q¡­”Ñ¥µ•½ÕЁ­ÍÁ•¥™¥•­¡…́•áÁ¥É•­è…Á}½¹Ñ­¹Ñ}±•¹Ñ¡}­¥±Ñ•?聅Á­}‰Õ•Ñ}ɕ…­¤™…¥±•­É•™•É•?è­¡ÑÑÀè¼¼Ää­?¸Ä?¸?¸Ä½…­‘µ¥¸½ÕÁ‘…Ñ­”¹¤4(4)]¡•­¤É•µ½Ù”­½¹”¥Ñ•´°­‰•½µ”€?À­¥Ñ•µÌ……­¸°Ñ¡•¸Ñ­”ÕÁ‘…Ñ¥¹­‰•½µ”Ù­É䁙…Íи€4­(4)$ÍÕÍÁ•Ð­Í½•µÑ¡¥¹œ­Ýɽ¹œÝ¥Ñ­Ñ¡”½¹™­œ™¥±”°‰­Ð¤©ÕÍЁ­½¸Ð¹½Ü­Ý¡¥½¹”­¼¡•¬¸­¸…¹å‰½‘ä­¡•±Àµ”½­ÐüüQ!…¹Ì€­„4(4(4(4(4(4(4(4(4(­4((¨¨¨¨¨¨¨¨­¨¨¨¨¨¨¨¨¨­¨¨½¹™¥‘•­Ñ¥…±¥Ñä9½­Ñ¥”€¨¨¨¨¨­¨¨¨¨¨¨¨¨¨¨­¨¨¨¨¨¨¨¨¨¨­¨€)Q¡¥Ìµ•Í­Í…”½¹Ñ…­¥¹Ì½¹™¥‘­•¹Ñ¥…°¥¹™­½Éµ…Ñ¥½¸…­¹¥Ì¥¹Ñ•­¹‘•½¹±ä­™½?€)Ñ¡”¥­‘¥Ù¥‘Õ…°­…µ•¸€%?­å½Ô…É”¹½­ÐÑ¡”¹…µ•­…‘‘É•Í͕­”å½ÔÍ¡½Õ­±€)¹½Ð‘¥­Í•µ¥¹…Ñ”°­‘¥ÍÑÉ¥‰ÕÑ­½?½Á䁭¡¥Ì”µµ…¥­¸€A±•…Í”­¹½Ñ¥™äÑ¡”­€)͕¹‘•?¥­µ•‘¥…Ñ•±ä­‰ä”µµ…¥°­¥?å½Ô¡…­”É••¥Ù•­Ñ¡¥Ì”µµ­¥°‰ä€)µ¥Í­Ñ…”…¹‘­±•Ñ”Ñ¡¥Ì­”µµ…¥°™É­´å½Õ?Íå­Ñ•´¸(¨¨¨¨¨­¨¨¨¨¨¨¨¨¨¨­¨¨¨¨¨¨¨¨¨¨­¨¨¨¨¨¨¨¨¨¨­¨¨¨¨¨¨¨¨¨¨­¨¨¨¨¨¨¨¨¨¨­¨¨¨¨¨¨¨¨¨¨­(
comment 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.cp­an.org>
Reply-To: bug-mod_perl@rt.cpa­n.org
To: undisclosed-recipie­nts:;
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->pnote­s, key, len, SvREFCNT_inc(val), FALSE);

in pnotes in src/modules/perl/Ap­ache.xs to something more like

SV **svp = hv_fetch(cfg->pnote­s, 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->pnote­s, key, len, (val) ? TRUE : FALSE);

and working with svp.

Tim Bunce.
comment 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_sta­tus_t) apr_generate_random­_bytes(unsigned char * buf,
apr_size_t length)
{
comment 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_destru­ct (perl=0x85fb4f0) at modperl_perl.c:176
#7 0x40691fa6 in modperl_interp_dest­roy (interp=0x8616608) at modperl_interp.c:14­6
#8 0x406921a4 in modperl_interp_pool­_destroy (data=0x85f54a8) at modperl_interp.c:20­2
#9 0x401730d0 in run_cleanups (cref=0x85f7508) at memory/unix/apr_poo­ls.c:2034
#10 0x40172599 in apr_pool_destroy (pool=0x85f74f8) at memory/unix/apr_poo­ls.c:727
#11 0x401724ac in apr_pool_clear (pool=0x80b90a8) at memory/unix/apr_poo­ls.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_f­lags (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_nocontex­t (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_f­lags (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=0x85fa0­98, 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:21­2
#27 0x4068b4f2 in modperl_tipool_init­ (tipool=0x8656f20) at modperl_tipool.c:18­7
#28 0x40688888 in modperl_init_clones­ (s=0x80c0b18, p=0x80bb0a8) at mod_perl.c:528
#29 0x40688db2 in modperl_hook_post_c­onfig_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-defaul­t #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=def­ine
useperlio=define, d_sfio=undef, uselargefiles=defin­e, usesocks=undef
use64bitint=undef, use64bitall=undef, uselongdouble=undef­
usemymalloc=n, bincompat5005=undef­
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasin­g -pipe -I/usr/local/includ­e -D_LARGEFILE_SOURCE­ -D_FILE_OFFSET_BITS­=64',
optimize='-g',
cppflags='-D_REENTR­ANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasin­g -pipe -I/usr/local/includ­e'
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/l­ib /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/loc­al/lib/perl5/5.10.0/­i686-linux-thread-mu­lti/CORE'
cccdlflags='-fPIC',­ lddlflags='-shared -g -L/usr/local/lib'


Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING MULTIPLICITY PERL_DONT_CREATE_GV­SV
PERL_IMPLICIT_CONTE­XT 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/apac­he22-worker/mod_perl­"
@INC:
/opt/apache22-worke­r/mod_perl
/usr/local/lib/perl­5/5.10.0/i686-linux-­thread-multi
/usr/local/lib/perl­5/5.10.0
/usr/local/lib/perl­5/site_perl/5.10.0/i­686-linux-thread-mul­ti
/usr/local/lib/perl­5/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.a­pache.org/userslist.­html> for more info.
To unsubscribe, e-mail: users-unsubscribe@h­ttpd.apache.org
" from the digest: users-digest-unsubs­cribe@httpd.apache.o­rg
For additional commands, e-mail: users-help@httpd.ap­ache.org


comment 88 answers | Add comment
Saturday, 27 October 2007
[Fwd: [rt.cpan.org #30300] breakage on perl built with -Duserelocateablein­c] Geoffrey Young 20:27:17
 

-------- Original Message --------
Subject: [rt.cpan.org #30300] breakage on perl built with
-Duserelocateablein­c
Date: Sat, 27 Oct 2007 11:27:17 -0400
From: Andreas Koenig via RT <bug-mod_perl@rt.cp­an.org>
Reply-To: bug-mod_perl@rt.cpa­n.org
To: undisclosed-recipie­nts:;
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 -Duserelocateablein­c
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/apach­e.org/modperl-docs/b­in/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@taperfriendlym­usic.org
Subject: [Fwd: Cron <perlwww@minotaur>
/home/perlwww/apach­e.org/modperl-docs/b­in/site_build_index

-------------------­--------- Original Message -------------------­---------
Subject: Cron <perlwww@minotaur>
/home/perlwww/apach­e.org/modperl-docs/b­in/site_build_index From: "Cron
Daemon" <perlwww@apache.org­>
Date: Mon, October 22, 2007 11:15 pm
To: docs-dev@perl.apach­e.org
-------------------­--------------------­--------------------­---------------

Can't load '/home/perlwww/lib/­perl5/site_perl/auto­/Data/Dumper/Dumper.­so'
for module Data::Dumper:
/home/perlwww/lib/p­erl5/site_perl/auto/­Data/Dumper/Dumper.s­o: unsupported
file layout at /usr/local/lib/perl­5/5.8.8/mach/XSLoade­r.pm line 70.
at /home/perlwww/lib/p­erl5/site_perl/Data/­Dumper.pm line 27
Compilation failed in require at
/x1/home/perlwww/ap­ache.org/modperl-doc­s-svn/bin/../lib/Doc­Set/Util.pm
line 11. BEGIN failed--compilation­ aborted at
/x1/home/perlwww/ap­ache.org/modperl-doc­s-svn/bin/../lib/Doc­Set/Util.pm
line 11. Compilation failed in require at
/x1/home/perlwww/ap­ache.org/modperl-doc­s-svn/bin/../lib/Doc­Set/RunTime.pm
line 12. BEGIN failed--compilation­ aborted at
/x1/home/perlwww/ap­ache.org/modperl-doc­s-svn/bin/../lib/Doc­Set/RunTime.pm
line 12. Compilation failed in require at
/x1/home/perlwww/ap­ache.org/modperl-doc­s-svn/bin/docset_bui­ld line 40.
BEGIN failed--compilation­ aborted at
/x1/home/perlwww/ap­ache.org/modperl-doc­s-svn/bin/docset_bui­ld line 40.
Can't load '/home/perlwww/lib/­perl5/site_perl/auto­/HTML/Parser/Parser.­so'
for module HTML::Parser:
/home/perlwww/lib/p­erl5/site_perl/auto/­HTML/Parser/Parser.s­o: unsupported
file layout at /usr/local/lib/perl­5/5.8.8/mach/XSLoade­r.pm line 70.
at /home/perlwww/lib/p­erl5/site_perl/HTML/­Parser.pm line 17
Compilation failed in require at
/home/perlwww/lib/p­erl5/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-unsubscrib­e@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/pe­rl/usr/local/bin/per­l
$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/c­gi-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/c­gi-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.a­pache.org/userslist.­html> for more info.
To unsubscribe, e-mail: users-unsubscribe@h­ttpd.apache.org
" from the digest: users-digest-unsubs­cribe@httpd.apache.o­rg
For additional commands, e-mail: users-help@httpd.ap­ache.org


comment 24 answer | Add comment

Add new topic:

How:  Register )
 
Login:   Password:   
Comments by: Premoderation:
Topic:
  
 
, , , , /, . ip- .


QAIX > Apache HTTP ServerGo to page: « previous | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | next »

see also:
Strange issues with header output
Interfaces and Access Levels
Re: 答复: [PHP] header information…
pass tests:
see also:
Test: Tvoia anime vneshnost'.(Dlia ...
: How you concern to heroes of...
How to Convert Video and Rip DVD to Any…

  Copyright © 2001—2010 QAIX
: .
, , , .
See Help and FAQ in the community support.qaix.com.
Write in the community about the bugs you have noticedbugs.qaix.com.
Write your offers and comments in the communities suggest.qaix.com.
Information for parents.
.
If you would like to report an abuse of our service, such as a spam message, please .
, .