[rt-users] Can't modify or create tickets after upgrading from 2 to 3 on a new machine.
Dave Knight
dave_knight at isc.org
Thu Aug 18 15:31:39 EDT 2005
Hi,
I have had quite some difficulty performing this upgrade, I thought all
was well when I was finally able to log into RT3 and see a familiar set
of queues and tickets, but I am unable to modify existing tickets or
create new ones and I have reached the limit of my clue. The following
is the details of what I started with, what I am migrating too, how I
did it and how it doesn't work:
I started with the following configuration:
FreeBSD 4.6.2-RELEASE-p26 i386
Apache/1.3.33
PostgreSQL 7.2.1
Perl 5.6.1
RT 2.0.15
Used rt-2.0-to-dumpfile to create a dump of this install.
Set up RT3 on a new system, with the following configuration:
FreeBSD 5.4-RELEASE-p4 amd64
Apache/2.0.54
PostgreSQL 7.4.8
Perl 5.8.6
RT 3.0.12
Built RT:
----------
# cd /usr/ports/www/rt3
----------
Edited Makefile to set RT_PATH to a custom install prefix
Built the port
----------
# make -DWITH_FASTCGI -DWITH_APACHE2 -DDB_TYPE=Pg -DDB_DBA_USER='moo' \
# -DDB_DBA_PASSWORD='baa' clean install
----------
Edited RT_SiteConfig.pm
Setup the database
----------
# /usr/local/rt3/sbin/rt-setup-database \
# --action init --dba 'moo' --dba-password 'baa'
----------
The I tried to use rt-2.0-to-dumpfile to import my data from RT2 (around
15 queues and 10,000 tickets). That failed miserably due to encoding
issues. After scanning the rt-users archives I followed the suggestion
of Julian Dunn:
-----------
<http://lists.bestpractical.com/pipermail/rt-users/2005-July/032518.html>
I have bludgeoned the importer into working by adding the statement:
# Hacked by Julian
$RT::Handle->SimpleQuery("SET CLIENT_ENCODING TO 'LATIN1'");
into the dumpfile-to-rt3.0 script. Note that one can't translate
SQL_ASCII directly into UNICODE per the docs
(http://www.postgresql.org/docs/7.4/static/multibyte.html) so I chose
LATIN1 (ISO-8859-1) instead, in the hopes that this will work.
----------
I still had a couple of tickets which would cause this to die, so at the
point in the code where this was happening I changed the die() to a
warn() and hoped for the best. Finally it would get all the way through
populating the database with my tickets.
Next I had some problems with the web interface, which was not related
to RT specifically and I was able to solve, but I will mention here as
possibly relevant as my workaround involved a hack to RT.
The problem was that in the migration to the new machine the version of
mod_auth_kerb (our RT is accessible only via https with krb5 auth) went
from 4 to 5. There is a change in the behaviour of the module such that
in 4 the HTTP env variable REMOTE_USER is set to <user>, which in 5 it
is set to <user>@<realm>. As all of my users are in RT as <user> this
meant that I couldn't log in. To work around this I modified
lib/RT/Interface/Web.pm as follows:
----------
sub WebCanonicalizeInfo {
my $user;
if ( defined $ENV{'REMOTE_USER'} ) {
$user = lc ( $ENV{'REMOTE_USER'} ) if(
length($ENV{'REMOTE_USER'}) );
## 20050815/dknight - mod_auth_kerb_5 sets REMOTE_USER to include the
realm,
## but our users were created in the days of mod_auth_kerb_4 which did not.
$user =~ s/\@isc.org$// if ($user =~ /\... at isc.org$/);
}
----------
Now I can log into RT and see the queues and tickets I expect to see. I
cannot however modify existing tickets or create new ones. If I try to
add a new ticket using the web interface I get the following error
message upon clicking 'Create'
----------
RT Error
Ticket could not be created due to an internal error
----------
And the following in my Apache error log (tail -f errorlog | awk
-F'stderr: ' '{print $2}')
---------
Queue->CustomFields is deprecated, use Queue->TicketCustomFields instead
at /usr/local/rt3ops/lib/RT/Queue_Overlay.pm line 516., referer:
https://ops2.isc.org/Ticket/Create.html?Queue=3
DBD::Pg::st execute failed: ERROR: duplicate key violates unique
constraint "tickets_pkey", referer:
https://ops2.isc.org/Ticket/Create.html?Queue=3
RT::Handle=HASH(0x51f6e8) couldn't execute the query 'INSERT INTO
Tickets (Subject, Status, Queue, Creator, Owner, LastUpdatedBy, Started,
Type, Starts, Resolved, Created, Priority, Due, LastUpdated) VALUES (?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' at
/usr/local/lib/perl5/site_perl/5.8.6/DBIx/SearchBuilder/Handle.pm line
494., referer: https://ops2.isc.org/Ticket/Create.html?Queue=3
[Thu Aug 18 19:28:21 2005] [crit]: Couldn't create a ticket: Internal
Error: Couldn't execute the query 'INSERT INTO Tickets (Subject, Status,
Queue, Creator, Owner, LastUpdatedBy, Started, Type, Starts, Resolved,
Created, Priority, Due, LastUpdated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?)'ERROR: duplicate key violates unique constraint
"tickets_pkey", referer: https://ops2.isc.org/Ticket/Create.html?Queue=3
(/usr/local/rt3ops/lib/RT/Ticket_Overlay.pm:590), referer:
https://ops2.isc.org/Ticket/Create.html?Queue=3
[Thu Aug 18 19:28:21 2005] [error]: WebRT: Ticket could not be created
due to an internal error ()
(/usr/local/rt3ops/share/html/Elements/Error:54), referer:
https://ops2.isc.org/Ticket/Create.html?Queue=3-
----------
This is where my clue runs out :(
Anyone have any idea as to why this is happening?
dave
--
Dave Knight
Internet Systems Consortium
More information about the rt-users
mailing list