Error in your SQL syntax


My rt.log file has the following error,

[Thu Jun 12 02:30:17 2008] [warning]: DBD::mysql::st execute failed: You
have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near ‘AND ACL.PrincipalType
= Groups.Type AND ((ACL.ObjectType = ‘RT::System’ AND ACL’ at line 1 at
/usr/lib/perl5/site_perl/5.8.8/DBIx/SearchBuilder/ line 505.
[Thu Jun 12 02:30:17 2008] [warning]: RT::Handle=HASH(0xb996b418) couldn’t
execute the query 'SELECT FROM ACL, Groups, Principals,
CachedGroupMembers WHERE (ACL.RightName = ‘SuperUser’ OR ACL.RightName =
‘CreateTicket’) AND Principals.Disabled = 0 AND CachedGroupMembers.Disabled
= 0 AND = AND Principals.PrincipalType = ‘Group’ AND = CachedGroupMembers.GroupId AND CachedGroupMembers.MemberId =
AND ACL.PrincipalType = Groups.Type AND ((ACL.ObjectType = 'RT::System’
AND ACL.ObjectId = 1) OR (ACL.ObjectType = ‘RT::Queue’ AND ACL.ObjectId =
6)) AND Groups.Domain = ‘RT::Queue-Role’ AND Groups.Instance = ‘6’ LIMIT 1’
at /usr/lib/perl5/site_perl/5.8.8/DBIx/SearchBuilder/ line 518

If you look closely at the quoted SQL statement, you see a clause like

… AND CachedGroupMembers.MemberId = AND ACL.PrincipalType = Groups.Type

So yeah, that’s an error.

The error was logged when someone tried to create a ticket through the
email interface. RT choked and said they didn’t have permission to create a
ticket, even though I have “Everyone” is granted the “CreateTicket” right in
all queues.

Unfortunately, I haven’t been able to replicate the error. Every time I
send an email from a new address, RT happily creates the ticket.

So if anyone knows what’s wrong, let me know… otherwise, I’ll keep
(FYI, this is RT 3.6.6.)




fyi, I looked at the stack trace, and there is a
lib/RT/Interface/Email/Filter/ module in the stack trace. This
module is not bundled with RT 3.6.6 so my problem may be there.