Upgrade 2.0.12: Where have all my tickets gone?

HI all,

I have upgraded from 2.0.8 to 2.0.12.
I followed the instructions, did make upgrade, insertdata …

But when I restarted apache, I received the following error in the
apache log:

[Fri Mar 15 12:34:09 2002] [error] [Fri Mar 15 12:34:09 2002] null:
Can’t locate object method “CaseSensitive” via package “RT::Handle” at
/opt/rt2/lib/RT/Record.pm line 128.

Well it seems like the CaseSensitive method does not exist in RT::Handle

Tried to upgrade several db related perl packages — no success.

As the CaseSensitive statement is used only once, I made the following
changes in Record.pm (line 128):

 #if ($self->_Handle->CaseSensitive) {
 if (1) {
...

which I think means from reading the code the db is supposed to be case
insensitive.

Then at least RT starts up again, without error.

All my users are still there, all my queues are still there … but all
my tickets are gone!!!
This is quite unfortunate as you can guess.

Any hints? I haven’t checked the db yet, but I am pretty sure, that they
are still in the db.

Thanks

Dominik

Dominik Westner wrote:

I have upgraded from 2.0.8 to 2.0.12.
I followed the instructions, did make upgrade, insertdata …

testdeps?

But when I restarted apache, I received the following error in the
apache log:

[Fri Mar 15 12:34:09 2002] [error] [Fri Mar 15 12:34:09 2002] null:
Can’t locate object method “CaseSensitive” via package “RT::Handle” at
/opt/rt2/lib/RT/Record.pm line 128.

Well it seems like the CaseSensitive method does not exist in RT::Handle

But it seems to me that RT::Handle ISA
DBIx::SearchBuilder::Handle::$RT::DatabaseType

and for RT::DatabaseType being Oracle, Pg or mysql, that in turn ISA
DBIx::SearchBuilder::Handle

which indeed has such a method (it’s overridden in the mysql code, too.)

As the CaseSensitive statement is used only once, I made the following
changes in Record.pm (line 128):

#if ($self->_Handle->CaseSensitive) {
if (1) {

That’ll work for Pg but not mysql, by my reading.

My guess is that you either have a bogus DatabaseType in config.pm,
or, more likely, that your DBIx::SearchBuilder is out of date.

Hi Phil,

well, here is what make testdeps reports:

Checking for DBI 1.18 …found
Checking for DBIx::DataSource 0.02 …found
Checking for DBIx::SearchBuilder 0.48 …found

and

brain:/opt/src/rt-2-0-12 # perl -MCPAN -e’install DBIx::SearchBuilder’
CPAN: Storable loaded ok
Going to read /var/cache/cpan/Metadata
Database was generated on Fri, 15 Mar 2002 08:39:30 GMT
DBIx::SearchBuilder is up to date.
brain:/opt/src/rt-2-0-12 #

and greping for CaseSensitive results in this:

brain:/opt/src/rt-2-0-12 # fgrep CaseSensitive
/usr/lib/perl5/site_perl/5.6.0/DBIx/*
fgrep: /usr/lib/perl5/site_perl/5.6.0/DBIx/DataSource: Is a directory
fgrep: /usr/lib/perl5/site_perl/5.6.0/DBIx/SearchBuilder: Is a directory
brain:/opt/src/rt-2-0-12 # fgrep CaseSensitive
/usr/lib/perl5/site_perl/5.6.0/DBIx//
fgrep: /usr/lib/perl5/site_perl/5.6.0/DBIx/SearchBuilder/Handle: Is a
directory
fgrep: /usr/lib/perl5/site_perl/5.6.0/DBIx/SearchBuilder/Record: Is a
directory
brain:/opt/src/rt-2-0-12 # fgrep CaseSensitive
/usr/lib/perl5/site_perl/5.6.0/DBIx///*

It seems that my SearchBuilder package is indeed out of date allthough
perl cpan reports it different.
I forced a reinstall of the package, but there’s still no CaseSensitive
method.

This looks very fishy to me.

DominikOn Freitag, März 15, 2002, at 01:41 PM, Phil Homewood wrote:

Dominik Westner wrote:

I have upgraded from 2.0.8 to 2.0.12.
I followed the instructions, did make upgrade, insertdata …

testdeps?

But when I restarted apache, I received the following error in the
apache log:

[Fri Mar 15 12:34:09 2002] [error] [Fri Mar 15 12:34:09 2002] null:
Can’t locate object method “CaseSensitive” via package “RT::Handle” at
/opt/rt2/lib/RT/Record.pm line 128.

Well it seems like the CaseSensitive method does not exist in
RT::Handle

But it seems to me that RT::Handle ISA
DBIx::SearchBuilder::Handle::$RT::DatabaseType

and for RT::DatabaseType being Oracle, Pg or mysql, that in turn ISA
DBIx::SearchBuilder::Handle

which indeed has such a method (it’s overridden in the mysql code, too.)

As the CaseSensitive statement is used only once, I made the following
changes in Record.pm (line 128):

#if ($self->_Handle->CaseSensitive) {
if (1) {

That’ll work for Pg but not mysql, by my reading.

My guess is that you either have a bogus DatabaseType in config.pm,
or, more likely, that your DBIx::SearchBuilder is out of date.

Ok, I think I have found the problem. It seems that I have a totally
messed up perl installation on the machine.

There’s the SUSE perl 5.6.0 installed and additionally a perl 5.6.1
installation.

CPAN uses 5.6.1 while mod_perl uses 5.6.0

I’ll fix it and I am pretty sure that it will work then :slight_smile:

Thanks for all your help.

DominikOn Freitag, März 15, 2002, at 01:41 PM, Phil Homewood wrote:

Dominik Westner wrote:

I have upgraded from 2.0.8 to 2.0.12.
I followed the instructions, did make upgrade, insertdata …

testdeps?

But when I restarted apache, I received the following error in the
apache log:

[Fri Mar 15 12:34:09 2002] [error] [Fri Mar 15 12:34:09 2002] null:
Can’t locate object method “CaseSensitive” via package “RT::Handle” at
/opt/rt2/lib/RT/Record.pm line 128.

Well it seems like the CaseSensitive method does not exist in
RT::Handle

But it seems to me that RT::Handle ISA
DBIx::SearchBuilder::Handle::$RT::DatabaseType

and for RT::DatabaseType being Oracle, Pg or mysql, that in turn ISA
DBIx::SearchBuilder::Handle

which indeed has such a method (it’s overridden in the mysql code, too.)

As the CaseSensitive statement is used only once, I made the following
changes in Record.pm (line 128):

#if ($self->_Handle->CaseSensitive) {
if (1) {

That’ll work for Pg but not mysql, by my reading.

My guess is that you either have a bogus DatabaseType in config.pm,
or, more likely, that your DBIx::SearchBuilder is out of date.