Upgrade from RT 3.8.4 to 3.8.6 Required Newer Mod_Perl 1.x under Apache 1.3.41

Just in case anyone else runs into this, not sure if it was supposed to be this way or not, but after upgrading to RT 3.8.6 from 3.8.4 we were getting an:

[error] Can’t call method “get” on an undefined value at /5.8.6/HTML/Mason/ApacheHandler.pm line 563.\nCompilation failed in require at /bin/…/lib/RT/Interface/Web/Handler.pm line 140.\n

in the apache error logs. We were running Apache 1.3.41 with mod_perl 1.29… after thinking it was a perl module problem, and making sure i had all the latest of those, still the same problem. Finally, i upgraded to mod_perl 1.31 and everything is running smoothly.

I didn’t see this mentioned anywere, maybe i missed it, but i thought i’d pass it along in case anyone else runs into it and searches for the error…

Just in case anyone else runs into this, not sure if it was supposed to be this way or not, but after upgrading to RT 3.8.6 from 3.8.4 we were getting an:

[error] Can’t call method “get” on an undefined value at /5.8.6/HTML/Mason/ApacheHandler.pm line 563.\nCompilation failed in require at /bin/…/lib/RT/Interface/Web/Handler.pm line 140.\n

in the apache error logs. We were running Apache 1.3.41 with mod_perl 1.29… after thinking it was a perl module problem, and making sure i had all the latest of those, still the same problem. Finally, i upgraded to mod_perl 1.31 and everything is running smoothly.

I didn’t see this mentioned anywere, maybe i missed it, but i thought i’d pass it along in case anyone else runs into it and searches for the error…

Just in case anyone else runs into this, not sure if it was supposed to be this way or not, but after upgrading to RT 3.8.6 from 3.8.4 we were getting an:

[error] Can’t call method “get” on an undefined value at /5.8.6/HTML/Mason/ApacheHandler.pm line 563.\nCompilation failed in require at /bin/…/lib/RT/Interface/Web/Handler.pm line 140.\n

in the apache error logs. We were running Apache 1.3.41 with mod_perl 1.29… after thinking it was a perl module problem, and making sure i had all the latest of those, still the same problem. Finally, i upgraded to mod_perl 1.31 and everything is running smoothly.

I didn’t see this mentioned anywere, maybe i missed it, but i thought i’d pass it along in case anyone else runs into it and searches for the error…

That should not have happened. Did you upgrade anything else at the
same time? 3.8.4 to 3.8.6 should not have broken any API compatibility.

Steps for the upgrade were:

  • Compile RT 3.8.6 and install to new directory
  • Run Upgrade on DB
  • Install RTFM into new directory (was previously on 3.8.4) RTFM complained about ExtUtils::MakeMaker when i re-made it (it might of before and i didn’t notice) so i updated ExtUtils::MakeMaker and then installed it
  • Restarted Apache after pointing to new RT install directory
  • Got Error as seen below
  • Updated a TON of perl modules to see if that did it (the all passed the dep tests, but figured it was worth a shot)
  • Restarted apache, still same error
  • recompiled apache against new mod_per
  • restarted apache and now it works

Nicola-----Original Message-----
From: Jesse Vincent [mailto:jesse@bestpractical.com]
Sent: Fri 11/6/2009 10:15 AM
To: Foggi, Nicola
Cc: rt-users@lists.bestpractical.com
Subject: Re: [rt-users] Upgrade from RT 3.8.4 to 3.8.6 Required Newer Mod_Perl 1.x under Apache 1.3.41

On Thu, Nov 05, 2009 at 10:52:29PM -0600, Foggi, Nicola wrote:

Just in case anyone else runs into this, not sure if it was supposed to be this way or not, but after upgrading to RT 3.8.6 from 3.8.4 we were getting an:

[error] Can’t call method “get” on an undefined value at /5.8.6/HTML/Mason/ApacheHandler.pm line 563.\nCompilation failed in require at /bin/…/lib/RT/Interface/Web/Handler.pm line 140.\n

in the apache error logs. We were running Apache 1.3.41 with mod_perl 1.29… after thinking it was a perl module problem, and making sure i had all the latest of those, still the same problem. Finally, i upgraded to mod_perl 1.31 and everything is running smoothly.

I didn’t see this mentioned anywere, maybe i missed it, but i thought i’d pass it along in case anyone else runs into it and searches for the error…

That should not have happened. Did you upgrade anything else at the
same time? 3.8.4 to 3.8.6 should not have broken any API compatibility.

Just in case anyone else runs into this, not sure if it was supposed to be this way or not, but after upgrading to RT 3.8.6 from 3.8.4 we were getting an:

[error] Can’t call method “get” on an undefined value at /5.8.6/HTML/Mason/ApacheHandler.pm line 563.\nCompilation failed in require at /bin/…/lib/RT/Interface/Web/Handler.pm line 140.\n

Since I don’t know what mason that is, what does that chunk of
ApacheHandler.pm look like? (Trying to find out what’s on line 563 and
around it)

$VERSION = 1.69;

line 563 is “@val = $c->dir_config->get($p)” as part of this sub…

sub get_val
{
my ($self, $p, $config, $r) = @
;

my @val;
if (wantarray || !$config)
{
    if ($config)
    {
        @val = $config->get($p);
    }
    else
    {
        my $c = $r ? $r : _get_apache_server;
        @val = $c->dir_config->get($p);
    }
}
else
{
    @val = exists $config->{$p} ? $config->{$p} : ();
}

param_error "Only a single value is allowed for configuration parameter '$p'\n"
    if @val > 1 && ! wantarray;

return wantarray ? @val : $val[0];

}-----Original Message-----
From: Jesse Vincent [mailto:jesse@bestpractical.com]
Sent: Fri 11/6/2009 10:38 AM
To: Foggi, Nicola
Cc: Jesse Vincent; rt-users@lists.bestpractical.com
Subject: Re: [rt-users] Upgrade from RT 3.8.4 to 3.8.6 Required Newer Mod_Perl 1.x under Apache 1.3.41

Just in case anyone else runs into this, not sure if it was supposed to be this way or not, but after upgrading to RT 3.8.6 from 3.8.4 we were getting an:

[error] Can’t call method “get” on an undefined value at /5.8.6/HTML/Mason/ApacheHandler.pm line 563.\nCompilation failed in require at /bin/…/lib/RT/Interface/Web/Handler.pm line 140.\n

Since I don’t know what mason that is, what does that chunk of
ApacheHandler.pm look like? (Trying to find out what’s on line 563 and
around it)

$VERSION = 1.69;

line 563 is “@val = $c->dir_config->get($p)” as part of this sub…

That is sadly much less useful than I’d hoped. If anyone else manages to
replicate this, please ping the list before destroying the evidence of
the failure so we can help to fix it properly.

Thanks,
Jesse

signature.asc (197 Bytes)

if i get a chance i’ll see if i can replicate it against a test box…-----Original Message-----
From: Jesse Vincent [mailto:jesse@bestpractical.com]
Sent: Fri 11/6/2009 10:59 AM
To: Foggi, Nicola
Cc: rt-users@lists.bestpractical.com
Subject: Re: [rt-users] Upgrade from RT 3.8.4 to 3.8.6 Required Newer Mod_Perl 1.x under Apache 1.3.41

On Fri 6.Nov’09 at 10:47:50 -0600, Foggi, Nicola wrote:

$VERSION = 1.69;

line 563 is “@val = $c->dir_config->get($p)” as part of this sub…

That is sadly much less useful than I’d hoped. If anyone else manages to
replicate this, please ping the list before destroying the evidence of
the failure so we can help to fix it properly.

Thanks,
Jesse