[cgiapp] CAP::AutoRunmode & mod_perl issue resolved

Richard Jones ra.jones at dpw.clara.co.uk
Thu Nov 27 07:51:41 EST 2008


Hi all,

As you've probably gathered, I've been having some problems with 
CAP::AutoRunmode under mod_perl. These were resolved, or so I thought, 
by removing 2 plugins (DebugScreen & ErrorPage), and fixing some 
circular refs in my code. At least that fixed the session & flash 
issues. The AutoRunmode/mod_perl issue was probably resolved by a 
co-incidental config change. But now it has suddenly returned and I 
think I've identified the reason.

It looks like having more than one app using AutoRunmode defined in 
perl.conf causes failure of them both (the 'cannot find runmode' error), 
depending on how the apps are configured in the Apache perl.conf file:

PerlModule Foo:Dispatch
<Location /foo>
   SetHandler perl-script
   PerlResponseHandler "sub { Foo::Dispatch->dispatch(); return OK; }"
</Location>

PerlModule Bar # <= comment this to make it work
<Location /bar>
   SetHandler perl-script
   PerlResponseHandler Bar
</Location>

That will cause both apps to fail with 'cannot find runmode'. But if I 
comment out 'PerlModule Bar', then both apps work fine under mod_perl2. 
To state the obvious, Bar.pm has a 'sub handler : method' defined. So 
this is probably a mod_perl2 config issue rather than CAP::AutoRunmode 
at fault.

Question: what is the correct way to configure perl.conf in the 2 
examples above.

Of secondary importance, and in the interest of finally putting the 
issue behind me, does anyone have any idea why the above config caused 
the failure of both apps to work with AutoRunmode? Possibly runmode 
registration confusion?
-- 
Richard Jones


More information about the cgiapp mailing list