Can't call method "Id" without a package or object reference

I have searched high and low all over Google to solve this issue with no
luck.

This is a fresh install and the error I’m getting is during “make
initialize-database”. I have followed all the instructions completely and
accurately (and multiple times).

Your help is hugely, greatly appreciated.

OS: RHEL 5.5 64-bit

Excerpt of error:

[root@pts1 rt-4.0.1]# make initialize-database
/usr/bin/perl -I/opt/rt4/local/lib -I/opt/rt4/lib sbin/rt-setup-database
–action init --prompt-for-dba-password
Subroutine _InitSQL redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 63.
Subroutine _SQLLimit redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 87.
Subroutine _SQLJoin redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 106.
Subroutine _OpenParen redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 116.
Subroutine _CloseParen redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 119.
Subroutine _close_bundle redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 170.
Subroutine _parser redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 201.
Subroutine ClausesToSQL redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 377.
Subroutine FromSQL redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 477.
Subroutine Query redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 543.
In order to create or update your RT database, this script needs to connect
to your mysql instance on localhost as root
Please specify that user’s database password below. If the user has no
database
password, just press return.

Password:

Working with:
Type: mysql
Host: localhost
Name: rt3
User: rt_user
DBA: root
Now creating a mysql database rt3 for RT.
Done.
Now populating database schema.
Done.
Now inserting database ACLs.
Granting access to rt_user@‘localhost’ on rt3.
Done.
Now inserting RT core system objects.
[Wed Jul 27 20:44:57 2011] [crit]: Can’t call method “Id” without a package
or object reference at /usr/lib/perl5/vendor_perl/5.8.8/RT/Group_Overlay.pm
line 309. (/tmp/rt-4.0.1/sbin/…/lib/RT.pm:340)
Can’t call method “Id” without a package or object reference at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Group_Overlay.pm line 309.
make: *** [initialize-database] Error 255

View this message in context: http://old.nabble.com/Can't-call-method-"Id"-without-a-package-or-object-reference-tp32151734p32151734.html

I have searched high and low all over Google to solve this issue with no
luck.

This is a fresh install and the error I’m getting is during “make
initialize-database”. I have followed all the instructions completely and
accurately (and multiple times).

Your help is hugely, greatly appreciated.

OS: RHEL 5.5 64-bit

Excerpt of error:

[root@pts1 rt-4.0.1]# make initialize-database
/usr/bin/perl -I/opt/rt4/local/lib -I/opt/rt4/lib sbin/rt-setup-database
–action init --prompt-for-dba-password
Subroutine _InitSQL redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 63.
Subroutine _SQLLimit redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 87.
Subroutine _SQLJoin redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 106.
Subroutine _OpenParen redefined at

RT4 should be isolated from RT3’s files. In your case files of RT3 are
installed in perl’s default paths, so RT4 finds them and loads. In RT4
we merged XXX.pm and XXX_Overlay.pm, but code still loads
XXX_Overlay.pm files. In your case it’s old code from RT3 that gets
mixed with new code.

Either cleanup your system or the following patch to prevent loading
of overlay files. I can not promisse patch would fix all issues.

diff --git a/lib/RT/Base.pm b/lib/RT/Base.pm
index 3c209f2…deff196 100644
— a/lib/RT/Base.pm
+++ b/lib/RT/Base.pm
@@ -156,7 +156,7 @@ sub _ImportOverlays {
my $class = shift;
my ($package,undef,undef) = caller();
$package =~ s|::|/|g;

  • for my $type (qw(Overlay Vendor Local)) {
  • for my $type (qw(Vendor Local)) {
    my $filename = $package."_".$type.".pm";
    eval { require $filename };
    die $@ if ($@ && $@ !~ m{^Can’t locate $filename});

Best regards, Ruslan.

[root@pts1 rt-4.0.1]# make initialize-database
/usr/bin/perl -I/opt/rt4/local/lib -I/opt/rt4/lib sbin/rt-setup-database
–action init --prompt-for-dba-password
Subroutine _InitSQL redefined at
/usr/lib/perl5/vendor_perl/5.8.8/RT/Tickets_Overlay_SQL.pm line 63.
Subroutine _SQLLimit redefined at

You have RT 3 files installed into your core perl, possibly from an
RPM? Those will conflict with your new RT4 install. The upgrade
documentation and recent blog post talk about needing to remove or
move-aside your old RT install or you’ll break RT4 during the
install/upgrade

-kevin

Either cleanup your system or the following patch to prevent loading
of overlay files. I can not promisse patch would fix all issues.

We discussed the patch and decided that it does more harm than good.
Even if everything going to work at the moment, later it can bite you
hard.

Best regards, Ruslan.