Nothing ever works for me :-(
I tried altering ppm of ActivePerl to point to the repository to get the mod_perl binary, but there was no such package available. I downloaded the source code and followed the steps in install.win32, to compile with MS Visual C++. Didn't work. I followed the steps to install with perl Makefile.PL APACHE_SRC=blah INSTALL_DLL=blah again it didn't work. Couldn't find ApacheCore.lib in blah when the damn F'ing library was somewhere else. Downloaded a binary of mod_perl.so for Win32 and installed manually, put the required directive in httpd.conf, again, didn't work. Error: Can't load mod_perl.so: A device attached to the system isn't functioning. Hmm, WTF is this? Since when has apache needed hardware? I give up. How do I install the damn thing? Why aren't the docs accurate? Why doesn't anything ever work? Very strange... AGHHH! ...ah, feel better now. ;) Thanks. James
HTTP_HOST clarification
I forgot to mention I am trying to access the http_host variable through an authentication script.. Thanks! Justin == Justin C. Rains, President WSI.com Consulting _ Get your own FREE branded portal! Visit www.wsicnslt.com to learn more
RFC: Apache::Session::CacheAny
Announcing the Adapter module which provides a way to use Cache::Cache subclasses as Apache::Session storage implementation. http://bulknews.net/lib/archives/Apache-Session-CacheAny-0.01.readme http://bulknews.net/lib/archives/Apache-Session-CacheAny-0.01.tar.gz Any suggestions are welcome. Thanks. -- NAME Apache::Session::CacheAny - use Cache::* for Apache::Session storage SYNOPSIS use Apache::Session::CacheAny; tie %session, 'Apache::Session::CacheAny', $sid, { CacheImpl = 'Cache::FileCache', }; tie %size_aware_session, 'Apache::Session::CacheAny', $sid, { CacheImpl= 'Cache::SizeAwareFileCache', Namespace= 'apache-session-cacheany', DefaultExpiresIn = '2 hours', AutoPurgeOnGet = 0, AutoPurgeOnSet = 1, MaxSize = 10_000, }; DESCRIPTION Apache::Session::CacheAny is a bridge between Apache::Session and Cache::Cache. This module provides a way to use Cache::Cache subclasses as Apache::Session storage implementation. ARGUMENTS You must specify class name of Cache::Cache implementation (like Cache::SharedMemoryCache) in arguments to the constructor. See the Apache::Session::Store::CacheAny manpage for details about other optional arguments. NOTE Apache::Session::CacheAny uses Apache::Session::Lock::Semaphore as its locking scheme. You can use Apache::Session::Flex to change that. AUTHOR Tatsuhiko Miyagawa [EMAIL PROTECTED] This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO the Apache::Session manpage, the Cache::Cache manpage -- Tatsuhiko Miyagawa [EMAIL PROTECTED]
Re: Using PerlTypeHandler and PerlHandler for the same Location
On Wed, 8 Aug 2001, Jay Buffington wrote: Hi, In my httpd.conf file I have: Location /foo/ SetHandler perl-script PerlTypeHandler foo PerlHandler bar /Location and then in the foo and bar files I have: --file foo.pm- package foo; sub handler { my $r = shift; $r-log_error(I'm in foo.); } 1; --file bar.pm- package bar; sub handler { my $r = shift; $r-log_error(I'm in bar.); } 1; I would expect this experiment would print out I'm in foo. followed by I'm in bar. to my apache error log. It only prints I'm in foo. If I remove the PerlTypeHandler line from the httpd.conf I get only I'm in bar. If I leave the TypeHandler but omit the PerlHandler, and add $r-push_handlers(PerlHandler=\bar::handler); to foo.pm I still only get I'm in foo. I'm using Perl 5.6 and mod_perl 1.25 with apache 1.3.19 Why does this not work as I expected? because your PerlTypeHandler has returned the value 0 (aka OK), the type handler phase is 'run first' (stop at first to return anything other than DECLINED), which means mod_mime's type handler is never run so r-handler never gets configured. you either need to return DECLINED in your PerlTypeHandler or set $r-handler('perl-script') yourself.
Re: Segmentation faults, some strace logs
On Wed, 8 Aug 2001, Andrei A. Voropaev wrote: Looks like the problem is caused by 'abort'. I did not do much digging yet but looks like abort calls 'croak'. Unrelational to segv we expirienced strange Bizzare copy of ARRAY in aassign in Carp/Heavy.pm line 79 messages at random instead of display of nice stack trace. Could it be some perl5.6.0 bug? yes, and one that is fixed in 5.6.1
Re: Blank Page Returned by Mod_perl
On Wed, 8 Aug 2001, Bob Foster wrote: Hi, I'm using mod_backhand frontend and mod_perl backend (on 127.0.0.1). Many complex scripts are working fine but I'm getting behavior I don't understand with this simple script: #!/usr/local/bin/perl print Content-type: text/html\n\n; print This is a test\n\n; exit; 1. If the script is NOT handed off to the backend, the browser shows: This is a test 2. If the script is handed off to the backend, the browser shows a blank page. 3. If I go directly to the backend, the browser shows: Content-type: text/html This is a test I'd like to get the same output on 2 as occurs on 1. Why is this happening? Can anyone help? sounds like you are missing this in httpd.conf: PerlSendHeader On
Re: modperl 2.0
On Fri, 10 Aug 2001, Dave Rolsky wrote: Well, mod_perl 2.0 will require (or does currently require) Perl to be built with ithreads support and this wasn't introduced until 5.6.0 so I wouldn't hold my breath. Actually, I suspect Doug will be recommending that people use 5.8.0 since there's been a lot of fixes going into the ithreads code since 5.6.1. modperl-2.0 only requires ithreads if you want to use a threaded mpm. using prefork mpm (1.3 process model) does not require ithreads.
Re: problems building apache + mod_perl + mod_ssl on FreeBSD 4.3
On 12 Aug 2001, Wayne Pascoe wrote: cc -funsigned-char -DMOD_SSL=208104 -DMOD_PERL -DUSE_PERL_SSI -fno-strict-aliasing -I/usr/local/include -DEAPI -DNO_DL_NEEDED -fno-strict-aliasing -I/usr/local/include `./apaci` -L/usr/lib-o httpd buildmark.o modules.o modules/standard/libstandard.a modules/ssl/libssl.a modules/perl/libperl.a main/libmain.a ./os/unix/libos.a ap/libap.a-lcrypt -lssl -lcrypto -Wl,-E -L/usr/local/lib /usr/local/lib/perl5/5.6.1/i386-freebsd/auto/DynaLoader/DynaLoader.a -L/usr/local/lib/perl5/5.6.1/i386-freebsd/CORE -lperl -lm -lc -lcrypt -liconv -lutil /usr/local/lib/perl5/5.6.1/i386-freebsd/auto/DynaLoader/DynaLoader.a(DynaLoader.o): In function `SaveError': DynaLoader.o(.text+0x159): undefined reference to `Perl_vmess' *** Error code 1 sounds like -lperl is being picked up from somewhere else (like /usr/lib), rather than /usr/local/lib/perl5/5.6.1/i386-freebsd/CORE look for a libperl.so in /usr/lib, if you find one, get rid of it. libperl.so should always in the perl version/arch install path.
Re: bugfix in Apache::URI
On Tue, 14 Aug 2001, Vyacheslav Zamyatin wrote: Hello all, Here is a small patch that prevents crash in the following example. $referer = 'http://some.host.com'; $uri = Apache;:URI-parse($req,$referer); $page = $uri-rpath; If parsed uri don't have path at all, it'll dump core in the last line. thanks, applied to cvs.
Re: Children dying
On Tue, 14 Aug 2001, Aleksandr Vladimirskiy wrote: Hi all, I am running a perl 5.6.0, mod_perl 1.26, apache 1.3.19 on Solaris 2.6. I get the following error in my logs: [Tue Aug 14 10:45:10 2001] [notice] child pid 2630 exit signal Segmentation Fault (11) It looks like the child serves a request and immidiately dies. Does anyone have any ideas on how to figure out why this keeps happenning? sounds like the largefiles problem, which mod_perl's Makefile.PL should have warned you about: Your Perl is uselargefiles enabled, but Apache is not, suggestions: *) Rebuild mod_perl with Makefile.PL PERL_USELARGEFILES=0 *) Rebuild Apache with CFLAGS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 *) Rebuild Perl with Configure -Uuselargefiles *) Let mod_perl build Apache (USE_DSO=1 instead of USE_APXS=1) first option is the easiest way to fix.
Re: RFC: Apache::Session::CacheAny
Tatsuhiko Miyagawa wrote: Announcing the Adapter module which provides a way to use Cache::Cache subclasses as Apache::Session storage implementation. Hmmm... Don't take this the wrong way, but what's the purpose of this? Apache::Session does very little beyond what Cache::Cache does. In fact, the only things I can think of are the tied interface, which is slower than methods and often confuses people who make updates deep within the structure that don't trigger a save, and the ID generation, which is really just a stub and needs to be replaced for any serious project. Also, why bother with Apache::Session::Lock::Semaphore at all? Cache::Cache already provides atomic updates. You should be able to use NullLocker with the same level of safety. - Perrin
Re: Nothing ever works for me :-(
On Sun, 9 Sep 2001, James Buchanan wrote: I tried altering ppm of ActivePerl to point to the repository to get the mod_perl binary, but there was no such package available. Does the following not work? DOS ppm ppm set repository mp http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer ppm install mod_perl ppm quit or alternatively, as one command, DOS ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl.ppd This particular mod_perl.ppd assumes apache_1.3.20. With either of these, after installing the relevant mod_perl files in your, eg, C:\Perl tree, a post-install script should be run asking you where to put mod_perl.so (which should be your Apache modules/ directory). I downloaded the source code and followed the steps in install.win32, to compile with MS Visual C++. Didn't work. I followed the steps to install with perl Makefile.PL APACHE_SRC=blah INSTALL_DLL=blah again it didn't work. Couldn't find ApacheCore.lib in blah when the damn F'ing library was somewhere else. The ApacheCore.lib library should be underneath APACHE_SRC - perhaps something like src\Release. Alternatively, you can (with newer Apaches) specify APACHE_SRC as the root directory of where you installed Apache (ApacheCore.lib should be under libexec/ here). Downloaded a binary of mod_perl.so for Win32 and installed manually, put the required directive in httpd.conf, again, didn't work. Error: Can't load mod_perl.so: A device attached to the system isn't functioning. Hmm, WTF is this? Since when has apache needed hardware? Those aren't very helpful error messages, are they? It also means that it can't load the indicated library file. mod_perl.so requires mod_perl to have been installed under your Perl tree, which I assume from the above you haven't had success in doing yet. As well, the mod_perl.so should be compiled against the version of Perl and Apache that you're using, and Perl should be in your PATH environment variable. I give up. How do I install the damn thing? Why aren't the docs accurate? Why doesn't anything ever work? Very strange... More details about what went wrong would help in improving the docs, as well as what parts of the docs you found inaccurate ... AGHHH! ...ah, feel better now. ;) That's what we're here for :) Keep trying - it's worth it ... best regards, randy kobes
Re: [OT] Redirect w/ Netscape browser causing 'Document contains no data'
On Aug 23, [EMAIL PROTECTED] contorted a few electrons to say... Daniel Little wrote: I seem to have a strange problem here with Netscape displaying the error 'Document contains no data' when I do $Response-Redirect($location). everytime i've ever gotten that it was because my server side code had caused an apache process to core dump. jr -- Joel W. Reed412-257-3881 --All the simple programs have been written. PGP signature
mod_rewrite + mod_perl
Hello all, For the first part of my project, I'm just using mod_perl as a replacement for CGI. I'm trying to execute a mod_perl script via mod_rewrite, but it doesn't seem to be persisting. In my httpd.conf, I've got: Files *.mod_perl SetHandler perl-script PerlHandler Apache::Registry PerlSendHeader On Options ExecCGI /Files ... RewriteRule ^/([^/^.]+)/?$ /path/show_journal.mod_perl [T=application/x-httpd-cgi,E=NICKNAME:$1,L] The above is used to catch the following URL: http://www.journalscape.com/kenny/ The nickname 'kenny' is captured from the url and sent to the script via an environment variable. It executes show_journal.mod_perl perfectly well, but the script does not remain resident in memory. Do I need to call it differently? Any help is appreciated. :) Kenny Smith [EMAIL PROTECTED]
Re: RFC: Apache::Session::CacheAny
Perrin Harkins writes: Tatsuhiko Miyagawa wrote: Announcing the Adapter module which provides a way to use Cache::Cache subclasses as Apache::Session storage implementation. Hmmm... Apache::Session does very little beyond what Cache::Cache does. In fact, the only things I can think of are the tied interface, which is slower than methods and often confuses people who make updates deep within the structure that don't trigger a save, and the ID generation, which is really just a stub and needs to be replaced for any serious project. [ preface: if there were a [EMAIL PROTECTED] list, I think this discussion would be better received there. can someone make such a list? ] Above and beyond the efficiency issues you discuss above, could you comment on what Apache::Session would need to be useful in a serious project? I have found it very useful in conjunction with CGI::Cookie to maintain state between forms. I mean, as far as I can see, it does one job and does it well with no perceived shortcomings in my eyes. But evidently something in your experiences leads you to other conclusions. And I would like to hear about this.
Re: Cloning the request object
I forgot to mention that I'm trying to inspect the body in a authentication handler. As soon as a get the body, the body is gone. - Original Message - From: Steven Lembark [EMAIL PROTECTED] To: Alin Simionoiu [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Saturday, September 08, 2001 5:39 PM Subject: Re: Cloning the request object -- Alin Simionoiu [EMAIL PROTECTED] Hi there, Those anybody know if is possible to clone the apache request object?. I'm trying to write a Apache module that do some basic validation against the request parameters. But as soon as a touching the request is gone. any other posibilities? I've never had problems with: sub handler { my $request = shift; foo $request or croak foo doesn't like you!; ... } sub foo { my $request = shift; ... } -- Steven Lembark 2930 W. Palmer Workhorse Computing Chicago, IL 60647 +1 800 762 1582
Re: problems building apache + mod_perl + mod_ssl on FreeBSD 4.3
On Sun, Sep 09, 2001 at 11:46:33AM -0700, Doug MacEachern wrote: On 12 Aug 2001, Wayne Pascoe wrote: cc -funsigned-char -DMOD_SSL=208104 -DMOD_PERL -DUSE_PERL_SSI -fno-strict-aliasing -I/usr/local/include -DEAPI -DNO_DL_NEEDED -fno-strict-aliasing -I/usr/local/include `./apaci` -L/usr/lib-o httpd buildmark.o modules.o modules/standard/libstandard.a modules/ssl/libssl.a modules/perl/libperl.a main/libmain.a ./os/unix/libos.a ap/libap.a-lcrypt -lssl -lcrypto -Wl,-E -L/usr/local/lib /usr/local/lib/perl5/5.6.1/i386-freebsd/auto/DynaLoader/DynaLoader.a -L/usr/local/lib/perl5/5.6.1/i386-freebsd/CORE -lperl -lm -lc -lcrypt -liconv -lutil /usr/local/lib/perl5/5.6.1/i386-freebsd/auto/DynaLoader/DynaLoader.a(DynaLoader.o): In function `SaveError': DynaLoader.o(.text+0x159): undefined reference to `Perl_vmess' *** Error code 1 sounds like -lperl is being picked up from somewhere else (like /usr/lib), rather than /usr/local/lib/perl5/5.6.1/i386-freebsd/CORE look for a libperl.so in /usr/lib, if you find one, get rid of it. libperl.so should always in the perl version/arch install path. THAT is the problem, and thanks to you Doug, the same problemed appeared in BSD/OS and the above FIXES the problem!!! You arethe man Dou! You are the man.
Re: RFC: Apache::Session::CacheAny
princepawn wrote: Above and beyond the efficiency issues you discuss above, could you comment on what Apache::Session would need to be useful in a serious project? I was commenting specifically on the ID generation. The algorithm supplied does not guarantee unique IDs, especially when you have a cluster of machines. The design of Apache::Session makes it possible to drop in your own replacement for ID generation, which is what you should do if you're building a large-scale production system. Last time I needed to deal with this I used mod_unique_id as my starting point, which does generate unique IDs across a cluster. - Perrin
Re: RFC: Apache::Session::CacheAny
On Sun, 09 Sep 2001 15:24:14 -0700 Perrin Harkins [EMAIL PROTECTED] wrote: Announcing the Adapter module which provides a way to use Cache::Cache subclasses as Apache::Session storage implementation. Hmmm... Don't take this the wrong way, but what's the purpose of this? To glue Cache::Cache with Apache::Session. That's all :-) Apache::Session does very little beyond what Cache::Cache does. In fact, the only things I can think of are the tied interface, which is slower than methods and often confuses people who make updates deep within the structure that don't trigger a save, and the ID generation, which is really just a stub and needs to be replaced for any serious project. Cache::Cache is a cache interface for any key-value pairs with optioinal automatic expire purge. Apache::Session is a framework for persisntent hash data with unique identifier and automatic serialiization/deserialization for hash. Why not combine these two? That's all what this module does. Also, why bother with Apache::Session::Lock::Semaphore at all? Cache::Cache already provides atomic updates. You should be able to use NullLocker with the same level of safety. Cache::Cache ensures file-based atomic update. But IMHO it's not enough for Apache::Session's session transactions, which should be done exclusively. Session data would get logically inconsistent when there are multiple concurrent requests with same one session id. Off course, you can change that to adopt A::S::Lock::Null with A::S::Flex. -- Tatsuhiko Miyagawa [EMAIL PROTECTED]
Re: problems building apache + mod_perl + mod_ssl on FreeBSD 4.3
On Sun, 9 Sep 2001, The Doctor wrote: THAT is the problem, and thanks to you Doug, the same problemed appeared in BSD/OS and the above FIXES the problem!!! great news. this has come up a bunch in the past, but nothing was done about it. i've added the following sanity check to Makefile.PL... Index: Makefile.PL === RCS file: /home/cvs/modperl/Makefile.PL,v retrieving revision 1.195 diff -u -r1.195 Makefile.PL --- Makefile.PL 2001/07/17 15:54:05 1.195 +++ Makefile.PL 2001/09/09 21:55:06 @@ -2410,6 +2410,7 @@ malloc_check(); uselargefiles_check(); dynaloader_check(); +shrplib_check(); if ($USE_APXS and $Config{libs} =~ /($thrlib)/) { my $lib = $1; @@ -2560,4 +2561,32 @@ /* Added by Wayne Scott EOF +} + +sub shrplib_check { +return unless $Config{'useshrplib'} and + $Config{'useshrplib'} eq 'define'; + +my $libperl = $Config{'libperl'} || 'libperl.so'; + +for my $dir (qw(/lib /usr/lib /usr/local/lib)) { +next unless -e $dir/$libperl; + +my $coredir = $Config{'archlibexp'}/CORE; +my $corelib = $coredir/$libperl; + +phat_warn(EOF); +$dir/$libperl might override +$corelib + +This may cause build or runtime errors with mod_perl. +Consider removing $dir/$libperl, it should not be there. + +If your vendor has installed $libperl there, complain to them and install +Perl from source if needed. + +$libperl should only exist in Perl version/arch directories, for example: +$coredir +EOF +} }
Re: $r-handler() Issue
On Sat, 18 Aug 2001, David Wheeler wrote: Hey All, I've got a PerlTransHandler where I want to disable, under certain circumstances (that is, whenever the content type isn't 'text/html') the content handler. However, this code doesn't do the trick: $r-handler('default-handler'); And neither does this: $r-handler(perl-script); $r-set_handlers('PerlHandler' = [ \OK ]) Or even this: $r-handler(perl-script); $r-set_handlers('PerlHandler' = [ \DECLINED ]) None of these snippets affects the content phase in any way; the PerlHandler I install in httpd.conf gets executed every time, no matter what. Can anyone tell me how I can disable my PerlHandler for the current request? you either need to have a PerlTypeHandler that sets $r-handler and returns OK (to prevent mod_mime from settting it) or set $r-handler with a PerlFixupHandler.
Re: RFC: Apache::Session::CacheAny
Tatsuhiko Miyagawa wrote: Cache::Cache is a cache interface for any key-value pairs with optioinal automatic expire purge. Apache::Session is a framework for persisntent hash data with unique identifier and automatic serialiization/deserialization for hash. To me, they both look like persistent hashes. Apache::Session assumes you will be storing a serialized hash in each hash value, and that it will generate IDs for keys if you don't supply one, but otherwise they're about the same. Why not combine these two? That's all what this module does. Okay. Just wondered if I was missing something. Cache::Cache ensures file-based atomic update. But IMHO it's not enough for Apache::Session's session transactions, which should be done exclusively. Session data would get logically inconsistent when there are multiple concurrent requests with same one session id. Apache::Session uses shared read locks, so I think you can still have problems there. It doesn't gurantee an atomic read-change-modify. - Perrin
Re: RFC: Apache::Session::CacheAny
On Sun, 09 Sep 2001 18:33:11 -0700 Perrin Harkins [EMAIL PROTECTED] wrote: To me, they both look like persistent hashes. Apache::Session assumes you will be storing a serialized hash in each hash value, and that it will generate IDs for keys if you don't supply one, but otherwise they're about the same. You're right. The (slight) difference you mention is all that this module does. Cache::Cache ensures file-based atomic update. But IMHO it's not enough for Apache::Session's session transactions, which should be done exclusively. Session data would get logically inconsistent when there are multiple concurrent requests with same one session id. Apache::Session uses shared read locks, so I think you can still have problems there. It doesn't gurantee an atomic read-change-modify. Forgot to mention 'Transaction = 1' argument. Thanks for fixing me. In fact, the storage model I heavily use is A::S::Store::MySQL, whick locking scheme is *always* exclusive. Now, without Transaction = 1 argument, there is no need to use locking scheme for preventing corrupted data update, because Cache::Cache already ensures it, as you wrote. Should I make Apache::Session::Lock::Cache, using Semaphore or File only in case of Transacton mode? package Apache::Session::Lock::Cache; use strict; use base qw(Apaache::Session::Lock::Semaphore); sub acquire_read_lock { 1 } sub release_read_lock { 1 } sub acquire_write_lock { my($self, $session) = @_; if ($session-{args}-{Transaction}) { $self-SUPER::acquire_write_lock($session); } } # blah, blah -- Tatsuhiko Miyagawa [EMAIL PROTECTED]
Re: problems building apache + mod_perl + mod_ssl on FreeBSD 4.3
On Sun, Sep 09, 2001 at 03:02:55PM -0700, Doug MacEachern wrote: On Sun, 9 Sep 2001, The Doctor wrote: THAT is the problem, and thanks to you Doug, the same problemed appeared in BSD/OS and the above FIXES the problem!!! great news. this has come up a bunch in the past, but nothing was done about it. i've added the following sanity check to Makefile.PL... Index: Makefile.PL === RCS file: /home/cvs/modperl/Makefile.PL,v retrieving revision 1.195 diff -u -r1.195 Makefile.PL --- Makefile.PL 2001/07/17 15:54:05 1.195 +++ Makefile.PL 2001/09/09 21:55:06 @@ -2410,6 +2410,7 @@ malloc_check(); uselargefiles_check(); dynaloader_check(); +shrplib_check(); if ($USE_APXS and $Config{libs} =~ /($thrlib)/) { my $lib = $1; @@ -2560,4 +2561,32 @@ /* Added by Wayne Scott EOF +} + +sub shrplib_check { +return unless $Config{'useshrplib'} and + $Config{'useshrplib'} eq 'define'; + +my $libperl = $Config{'libperl'} || 'libperl.so'; + +for my $dir (qw(/lib /usr/lib /usr/local/lib)) { +next unless -e $dir/$libperl; + +my $coredir = $Config{'archlibexp'}/CORE; +my $corelib = $coredir/$libperl; + +phat_warn(EOF); +$dir/$libperl might override +$corelib + +This may cause build or runtime errors with mod_perl. +Consider removing $dir/$libperl, it should not be there. + +If your vendor has installed $libperl there, complain to them and install +Perl from source if needed. + +$libperl should only exist in Perl version/arch directories, for example: +$coredir +EOF +} } Doug, the problem lies in the fact that some release uses /usr/lib and /usr/cotnrib/lib in their libpath. all I did was to replace the libperl.so in both directories and got perl to behave. This COULD be a BSD release problem. Again Doug, you are the man.
Re: [OT] Redirect w/ Netscape browser causing 'Document contains no data'
I seem to have a strange problem here with Netscape displaying the error 'Document contains no data' when I do $Response-Redirect($location). everytime i've ever gotten that it was because my server side code had caused an apache process to core dump. You might want to try sending single byte (\n would be sufficient) after calling above redirection code. Though it was not mod_perl (I was using PHP), I had similar symptom and it went away after I added this extra code. Hope this helps. -- Taisuke Yamada [EMAIL PROTECTED] PGP fingerprint = 6B 57 1B ED 65 4C 7D AE 57 1B 49 A7 F7 C8 23 46
cvs commit: modperl Changes Makefile.PL
dougm 01/09/09 14:56:46 Modified:.Changes Makefile.PL Log: warn if Perl is configured with -Duseshrplib and a libperl.so is found in a place where it should not be, example: /lib /usr/lib or /usr/local/lib Revision ChangesPath 1.622 +3 -0 modperl/Changes Index: Changes === RCS file: /home/cvs/modperl/Changes,v retrieving revision 1.621 retrieving revision 1.622 diff -u -r1.621 -r1.622 --- Changes 2001/09/09 18:48:47 1.621 +++ Changes 2001/09/09 21:56:46 1.622 @@ -10,6 +10,9 @@ =item 1.26_01-dev +warn if Perl is configured with -Duseshrplib and a libperl.so is found +in a place where it should not be, example: /lib /usr/lib or /usr/local/lib + fix potential segv in Apache::URI-rpath [Vyacheslav Zamyatin [EMAIL PROTECTED]] 1.196 +29 -0 modperl/Makefile.PL Index: Makefile.PL === RCS file: /home/cvs/modperl/Makefile.PL,v retrieving revision 1.195 retrieving revision 1.196 diff -u -r1.195 -r1.196 --- Makefile.PL 2001/07/17 15:54:05 1.195 +++ Makefile.PL 2001/09/09 21:56:46 1.196 @@ -2410,6 +2410,7 @@ malloc_check(); uselargefiles_check(); dynaloader_check(); +shrplib_check(); if ($USE_APXS and $Config{libs} =~ /($thrlib)/) { my $lib = $1; @@ -2560,4 +2561,32 @@ /* Added by Wayne Scott EOF +} + +sub shrplib_check { +return unless $Config{'useshrplib'} and + $Config{'useshrplib'} eq 'define'; + +my $libperl = $Config{'libperl'} || 'libperl.so'; + +for my $dir (qw(/lib /usr/lib /usr/local/lib)) { +next unless -e $dir/$libperl; + +my $coredir = $Config{'archlibexp'}/CORE; +my $corelib = $coredir/$libperl; + +phat_warn(EOF); +$dir/$libperl might override +$corelib + +This may cause build or runtime errors with mod_perl. +Consider removing $dir/$libperl, it should not be there. + +If your vendor has installed $libperl there, complain to them and install +Perl from source if needed. + +$libperl should only exist in Perl version/arch directories, for example: +$coredir +EOF +} }
cvs commit: modperl-2.0/xs/maps apache_structures.map apr_structures.map
dougm 01/09/09 22:49:04 Modified:xs/maps apache_structures.map apr_structures.map Log: update structure maps wrt current httpd-2.0 Revision ChangesPath 1.9 +22 -1 modperl-2.0/xs/maps/apache_structures.map Index: apache_structures.map === RCS file: /home/cvs/modperl-2.0/xs/maps/apache_structures.map,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- apache_structures.map 2001/09/08 18:26:46 1.8 +++ apache_structures.map 2001/09/10 05:49:04 1.9 @@ -54,6 +54,7 @@ unparsed_uri uri filename + canonical_filename path_info args ~ finfo @@ -107,6 +108,7 @@ aborted keepalive ? double_reverse + keepalives local_ip local_host id @@ -114,7 +116,6 @@ notes input_filters output_filters - remain /conn_rec !server_addr_rec @@ -240,3 +241,23 @@ context err_directive /cmd_parms + +!ap_mgmt_item_t + description + name + vtype + v +/ap_mgmt_item_t + +!ap_mgmt_value + s_value + i_value + h_value +/ap_mgmt_value + +!ap_pod_t + pod_in + pod_out + p + sa +/ap_pod_t 1.6 +5 -2 modperl-2.0/xs/maps/apr_structures.map Index: apr_structures.map === RCS file: /home/cvs/modperl-2.0/xs/maps/apr_structures.map,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- apr_structures.map2001/08/19 17:33:32 1.5 +++ apr_structures.map2001/09/10 05:49:04 1.6 @@ -2,6 +2,7 @@ IGNORE: apr_pool_t apr_os_ apr_vformatter_buff_t apr_pool_t \ apr_table_t apr_in_addr_t apr_bucket_ apr_md5_ctx_t apr_sha1_ctx_t \ +apr_md4_ctx_t apr_sdbm_datum_t \ apr_uuid_t apr_datum_t apr_mmap_t apr_hdtr_t apr_ipsubnet_t #buckets @@ -22,6 +23,7 @@ length start data + sms /apr_bucket !apr_finfo_t @@ -55,6 +57,7 @@ addr_str_len ipaddr_ptr next + family /apr_sockaddr_t !apr_proc_t @@ -81,7 +84,7 @@ #generic data structures !apr_array_header_t - cont + pool elt_size nelts nalloc @@ -129,7 +132,7 @@ attr last_child ns_scope - private + priv /apr_xml_elem apr_xml_doc
cvs commit: modperl-2.0/src/modules/perl mod_perl.c
dougm 01/09/09 21:43:03 Modified:lib/ModPerl WrapXS.pm src/modules/perl mod_perl.c Added: lib/ModPerl XSLoader.pm Log: do not bootstrap xs libs outside of httpd Revision ChangesPath 1.20 +2 -2 modperl-2.0/lib/ModPerl/WrapXS.pm Index: WrapXS.pm === RCS file: /home/cvs/modperl-2.0/lib/ModPerl/WrapXS.pm,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- WrapXS.pm 2001/06/26 16:26:51 1.19 +++ WrapXS.pm 2001/09/10 04:43:02 1.20 @@ -488,9 +488,9 @@ package $module; $isa -use XSLoader (); +use ModPerl::XSLoader (); our \$VERSION = '0.01'; -XSLoader::load __PACKAGE__; +ModPerl::XSLoader::load __PACKAGE__; $code 1.1 modperl-2.0/lib/ModPerl/XSLoader.pm Index: XSLoader.pm === package ModPerl::XSLoader; use strict; use warnings FATAL = 'all'; use XSLoader (); BEGIN { unless (defined BOOTSTRAP) { *BOOTSTRAP = sub () { 0 }; } } sub load { return unless BOOTSTRAP; XSLoader::load(@_); } 1; 1.64 +10 -1 modperl-2.0/src/modules/perl/mod_perl.c Index: mod_perl.c === RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v retrieving revision 1.63 retrieving revision 1.64 diff -u -r1.63 -r1.64 --- mod_perl.c2001/08/30 05:15:51 1.63 +++ mod_perl.c2001/09/10 04:43:03 1.64 @@ -24,6 +24,15 @@ } #endif +static void my_xs_init(pTHX) +{ +xs_init(aTHX); /* see modperl_xsinit.c */ + +newCONSTSUB(PL_defstash, +ModPerl::XSLoader::BOOTSTRAP, +newSViv(1)); +} + PerlInterpreter *modperl_startup(server_rec *s, apr_pool_t *p) { MP_dSCFG(s); @@ -56,7 +65,7 @@ PL_perl_destruct_level = 2; } #endif -status = perl_parse(perl, xs_init, argc, argv, NULL); +status = perl_parse(perl, my_xs_init, argc, argv, NULL); if (status) { perror(perl_parse);