Nothing ever works for me :-(

2001-09-09 Thread James Buchanan

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

2001-09-09 Thread Justin Rains

   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

2001-09-09 Thread Tatsuhiko Miyagawa

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

2001-09-09 Thread Doug MacEachern

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

2001-09-09 Thread Doug MacEachern

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

2001-09-09 Thread Doug MacEachern

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

2001-09-09 Thread Doug MacEachern

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

2001-09-09 Thread Doug MacEachern

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

2001-09-09 Thread Doug MacEachern

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

2001-09-09 Thread Doug MacEachern

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

2001-09-09 Thread Perrin Harkins

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 :-(

2001-09-09 Thread Randy Kobes

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'

2001-09-09 Thread Joel W. Reed

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

2001-09-09 Thread Kenny Smith

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

2001-09-09 Thread princepawn

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

2001-09-09 Thread Alin Simionoiu

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

2001-09-09 Thread The Doctor

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

2001-09-09 Thread Perrin Harkins

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

2001-09-09 Thread Tatsuhiko Miyagawa

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

2001-09-09 Thread Doug MacEachern

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

2001-09-09 Thread Doug MacEachern

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

2001-09-09 Thread Perrin Harkins

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

2001-09-09 Thread Tatsuhiko Miyagawa

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

2001-09-09 Thread The Doctor

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'

2001-09-09 Thread Taisuke Yamada


 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

2001-09-09 Thread dougm

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

2001-09-09 Thread dougm

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

2001-09-09 Thread dougm

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);