perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kulasekaran, Raja" <Raja.Kulaseka...@netapp.com>
Subject RE: FW: Apache::DBI Failed due to +GlobalRequest
Date Sat, 12 Sep 2009 15:27:39 GMT
Hi,

 

Great. I guess this might solve the problem. 

 

I had found in one of the forum stating that  we can write a handler which generates the "$r"
global object  before initiate the Apache::DBI  connection .  Is that possible ? .

 

Otherwise, Shall I  install Apache::DBI 1.06 instead of Apache::DBI 1.07 ? 

 

Thanks,

Raja 

 

From: Brad Van Sickle [mailto:bvs7085@gmail.com] 
Sent: Saturday, September 12, 2009 7:54 PM
To: mod_perl list
Cc: Kulasekaran, Raja
Subject: Re: FW: Apache::DBI Failed due to +GlobalRequest

 

I've run into this before.   It's a bug in v1.07 of Apache::DBI

Open up the Apache/DBI.pm source file (on one of my test systems it's installed in /usr/lib/perl5/site_perl/5.8.8/Apache/DBI.pm)
aind the following block of code: 
   if (!$Rollback{$Idx}) {
        my $r;
        if (MP2) {
                $r = Apache2::RequestUtil->request;
                }
        elsif (Apache->can('push_handlers')) {
            $r = 'Apache';
        }

The problem with this is that if you're calling this from startup.pl you're not actually in
a request at that point  (as someone already mentioned) so without the eval there the script
dies. 

Fix it by wrapping the "$r = Apache2::RequestUtil->request;" part in an eval so it looks
like this: eval { $r = Apache2::RequestUtil->request;}








André Warnier wrote: 

Kulasekaran, Raja wrote: 



Hi, 

Thanks for your mail. I did tried. It's not working . 

Yes, I am sorry.  I did not look close enough at the following error : 

[Thu Sep 10 14:39:30 2009] [error] Global $r object is not available. 
Set:\n\tPerlOptions +GlobalRequest\nin httpd.conf at 
/var/www/audashboard/exec/startup.pl line 24.\nCompilation failed in 
require at (eval 5) line 1.\n 

In a mod_perl *request* handler, the first argument 
(my $r = shift;) 
is usually a pointer to the current Request object. 

But in your startup script (startup.pl), that is not the case, because when that script is
run, there is no request yet. 
I don't know what you are trying to do with $r in that startup script, but something is wrong
and maybe the error message above is misleading. 
(I mean that it may have nothing to do with GlobalRequest at that stage.) 


Mime
View raw message