Postgres error on new ticket creation (3.2.1)

Hello,

we just received an email that failed to create a ticket in our RT. At
first I thought it was a one-time occurrence, and bounced the message again
into RT from our archive mailbox. The same error happened again. The email
looks quite ok (I can provide it in UUencoded format for tests, Jesse). Our
environment is

  • RT 3.2.1
  • FreeBSD 5.1-RELEASE
  • Apache 1.3.31
  • perl 5.8.5
  • mod_perl 1.29
  • postgres database

The installation was a clean install, using existing 3.0.9 database. I went
through the database creation scripts looking for differences and applied
required changes to database (creation of Attachments table, couple of
other things). I might have missed something.

The Postgres error message follows. Any thoughts? This is the first problem
of any kind in the two weeks we’ve been using RT 3.2.1.

Sep 15 16:55:04 oban RT: DBD::Pg::st execute failed: ERROR: value too long
for type character varying(255) at
/usr/local/perl-5.8.5/lib/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line
410. (/usr/local/rt-3.2.1/lib/RT.pm:250)
Sep 15 16:55:04 oban RT: RT::Handle=HASH(0x982d944) couldn’t execute the
query ‘INSERT INTO Attachments (Subject, ContentType, Filename, Headers,
Creator, Parent, Created, ContentEncoding, Content, TransactionId) VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)’ at
/usr/local/perl-5.8.5/lib/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line
417. (/usr/local/rt-3.2.1/lib/RT.pm:250)
Sep 15 16:55:04 oban RT: DBD::Pg::st execute failed: ERROR: current
transaction is aborted, queries ignored until end of transaction block at
/usr/local/perl-5.8.5/lib/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line
410. (/usr/local/rt-3.2.1/lib/RT.pm:250)
Sep 15 16:55:04 oban RT: RT::Handle=HASH(0x982d944) couldn’t execute the
query ‘SELECT ACL.id from ACL, Groups, Principals, CachedGroupMembers WHERE
(ACL.RightName = ‘SuperUser’ OR ACL.RightName = ‘ShowTicket’) AND
Principals.Disabled = 0 AND CachedGroupMembers.Disabled = 0 AND
Principals.id = Groups.id AND Principals.id = CachedGroupMembers.GroupId
AND CachedGroupMembers.MemberId = ‘38594’ AND ( ACL.ObjectType =
‘RT::System’ OR (ACL.ObjectType = ‘RT::Ticket’ AND ACL.ObjectId = ‘7494’)
OR (ACL.ObjectType = ‘RT::Queue’ AND ACL.ObjectId = ‘5’)) AND ( (
ACL.PrincipalId = Principals.id AND ACL.PrincipalType = ‘Group’ AND
(Groups.Domain = ‘SystemInternal’ OR Groups.Domain = ‘UserDefined’ OR
Groups.Domain = ‘ACLEquivalence’ OR Groups.Domain = ‘Personal’)) ) LIMIT
1’ at
/usr/local/perl-5.8.5/lib/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line
417. (/usr/local/rt-3.2.1/lib/RT.pm:250)
Sep 15 16:55:04 oban RT: DBD::Pg::st execute failed: ERROR: current
transaction is aborted, queries ignored until end of transaction block at
/usr/local/perl-5.8.5/lib/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line
410. (/usr/local/rt-3.2.1/lib/RT.pm:250)
Sep 15 16:55:04 oban RT: RT::Handle=HASH(0x982d944) couldn’t execute the
query ‘SELECT ACL.id from ACL, Groups, Principals, CachedGroupMembers WHERE
(ACL.RightName = ‘SuperUser’ OR ACL.RightName = ‘ShowTicket’) AND
Principals.Disabled = 0 AND CachedGroupMembers.Disabled = 0 AND
Principals.id = Groups.id AND Principals.id = CachedGroupMembers.GroupId
AND CachedGroupMembers.MemberId = ‘38594’ AND ( ACL.ObjectType =
‘RT::System’ OR (ACL.ObjectType = ‘RT::Ticket’ AND ACL.ObjectId = ‘7494’)
OR (ACL.ObjectType = ‘RT::Queue’ AND ACL.ObjectId = ‘5’)) AND (
((Groups.Domain = ‘RT::Ticket-Role’ AND Groups.Instance = 7494) OR
(Groups.Domain = ‘RT::Queue-Role’ AND Groups.Instance = 5) ) AND
Groups.Type = ACL.PrincipalType AND Groups.Id = Principals.id AND
Principals.PrincipalType = ‘Group’) LIMIT 1’ at
/usr/local/perl-5.8.5/lib/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line
417. (/usr/local/rt-3.2.1/lib/RT.pm:250)
Sep 15 16:55:04 oban RT: DBD::Pg::st execute failed: ERROR: current
transaction is aborted, queries ignored until end of transaction block at
/usr/local/perl-5.8.5/lib/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line
410. (/usr/local/rt-3.2.1/lib/RT.pm:250)
Sep 15 16:55:04 oban RT: RT::Handle=HASH(0x982d944) couldn’t execute the
query 'UPDATE Tickets SET LastUpdated=? WHERE id=? ’ at
/usr/local/perl-5.8.5/lib/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line
417. (/usr/local/rt-3.2.1/lib/RT.pm:250)
Sep 15 16:55:04 oban RT: DBD::Pg::st execute failed: ERROR: current
transaction is aborted, queries ignored until end of transaction block at
/usr/local/perl-5.8.5/lib/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line
410. (/usr/local/rt-3.2.1/lib/RT.pm:250)
Sep 15 16:55:04 oban RT: RT::Handle=HASH(0x982d944) couldn’t execute the
query 'UPDATE Tickets SET LastUpdated=? WHERE id=? ’ at
/usr/local/perl-5.8.5/lib/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line
417. (/usr/local/rt-3.2.1/lib/RT.pm:250)

    Jari Lehtonen
    Unix & Network services
    Computing Center
    University of Turku, Finland
  • Jari Lehtonen:

Sep 15 16:55:04 oban RT: DBD::Pg::st execute failed: ERROR: value too long
for type character varying(255) at
/usr/local/perl-5.8.5/lib/site_perl/5.8.5/DBIx/SearchBuilder/Handle.pm line
410. (/usr/local/rt-3.2.1/lib/RT.pm:250)

Just change the table definitions to use TEXT instead of VARCHAR(nnn).
There is no performance penalty.

Maybe a newer DBIx::SearchBuilder version fixes the problem, too. (I
don’t know if this has been implemented yet.)