FAQ

From Request Tracker Wiki
Jump to navigation Jump to search

FAQ

When you want to ask a question

First of all, read How To Ask Questions The Smart Way.

Help people help you

In particular, be sure to search this wiki and MailingListArchives before posing your question. If you do not turn up a pre-existing answer, don't forget to specify:

  • whether your problem is on a new installation, or a system which has been running properly in production.
  • shell> uname -a - OS, Distribution.
  • GetSoftwareVersions - RT, Perl, RTFM, DBIx::SearchBuilder, Apache, ModPerl, FastCGI, MySQL, PostgresSQL versions.
  • Debug - Don't forget to attach errors, logs, think about debug log level.
  • MailingListArchives - In any case try to search in the archives of the RT mailing lists.

Upgrade to the latest

If you are not running the most recent stable version of RT/RTFM/RTIR then upgrade before asking your question.

It's understood that you may not be able to upgrade a given installation if it's in production, but understand in return that the amount of help people will be able to give you will decline roughly in proportion to the age of your install.

And, the answer may be "that's a known bug, and you'll have to upgrade to fix it" anyway. Minimally, you might find it useful to install the latest version on a non-production machine and attempt to reproduce your problem there.

Topic specific FAQs

General

Q: What is RT?

A: Request Tracker (RT) is a way for organizations to keep track of their to-do lists, who is working on which tasks, what's already been done, and when tasks were completed. RT can be used for a variety of tasks, like fixing software bugs and answering customer service requests, and it is available under the terms of the GNU General Public License (GPL).

Q: How do I report a bug in RT?

A: BugReporting

Q: How do I submit a feature request for RT?

A: Please file a ticket in this feature requests and bugs RT instance.


Q: Which distro is best/easiest for RT?

A: InstallationGuides

Web User Interface

Q: Can I add a status StickyWicket? What about PendingInvoice or Wait2WeeksBeforeReplying?

A: CustomStatuses


Q: Can't I search on Custom Fields?

A1: If you're using Queue-specific CustomFields, the top-level search page won't allow you to search on them. Until you specifiy a Queue, RT can't know which Queue-specific fields to offer, it can only offer Global CustomFields. So in the top-level search page, select "in Queue" you want to to use. RT will then present a Queue-specific search form which will show the CustomFields defined for that Queue.

A2: Go to Tickets -> Advanced. Then in the top text box enter:

Queue = 'Your Queue' AND 'CF.{Your Custom Field Name}' = 'Custom Field Value'

Then hit "Apply", which will take you to the Query Builder, then hit "Search".

For searching on 'any' custom field value, you might try

Queue = 'Your Queue' AND 'CF.{Your Custom Field Name}' > '0'

or

Queue = 'Your Queue' AND 'CF.{Your Custom Field Name}' LIKE '%'

Q: How to change the display order of CustomFields?

A: Configuration -> Queues -> Queue Name -> Ticket Custom Fields, then use the links up/down on the right


Q: Can I reverse order of transactions on history page?

A: ReverseHistoryOrder


Q: How can I run multiple instances of RT on a single instance of Apache?

A:

  • If you use FastCGI then read MultipleInstances.
  • mod_perl1 allows only one instace of RT per Apache instance. If you stay with mod_perl1, you have to run separate instances of apache, since even different virtual hosts will all share the same perl interpreter in mod_perl1. Switching to FastCGI or mod_perl2 is a better choice.
  • mod_perl2 has option Parent which allow you to run several instances under the same apache instance.

Q: Can I hide RT_System entries on history page?

A: HideTransactions


Q: What is the "Category" field in CustomField of type "select" creation?

A: It allows you to make a two level select when choosing values for this customfield. A first select will appear with the value of the "Category" field, then if you select a category, you will get a select with the values for this customfield corresponding to this category.


Q: Why doesn't the search box at the top right of the UI return tickets with a status of resolved?

A: See the ManualSimpleSearch page to understand how this search field works.


Q: Why charts doesn't display correctly non ascii chars (like french accents and so on)

A: Default GD font doesn't support non ascii chars. You should install a truetype font like bitstream vera (aptitude install ttf-bitstream-vera on Debian systems) and set this font in RT_SiteConfig.pm:

Set($ChartFont, '/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf');

Mail gate

Q: RT doesn't send some mails to users.

A1: Look at the NotifyActor config option. RT by default doesn't send mails to the actor of a transaction, with the exception of AutoReply mails. Maybe this is your problem?

A2: Check to make sure your incoming messages don't have a "Precedence: bulk" or "junk" header. Some mailing lists will add this, so if your RT installation receives mail via such a list, it will not AutoReply to the requestor.

A3: Check RTAddressRegexp config option.


Q: Mail is sent when the action is 'Auto Reply' but not when the action is 'Notify'.

A: Look at the answer to the previous question. Most likely the actor of the transaction is the only possible recipient.


Q: Can I add Custom Field values from Emails?

A: Use "command by mail" or "extract custom field values" extensions, see Extensions


Q: Is it possible for Actors to manipulate ticket statuses, time worked and so on via emails in RT3? RT2 used to have the enhanced-mailgate but it doesn't seem to work with RT3.

A: SetTicketPropertiesViaMail


Q: How can I change mail headers?

A: Mail headers can be changed for a specific template, see Templates description.

Performance

Q: I have perfomance problems, how can I solve them?

A: This question is so complex and particular in each situation, but no matter how you slice it you have to do a little work on your side:

  • Upgrade to the most recent version of DBIx::SearchBuilder. This is the first answer given whenever this question comes up on the list. New versions of DBIx::SearchBuilder are continuously coming out. As per Jesse, 4 out of 5 releases are optimizations for speed. These aren't announced to the mailing list.
  • Mailing list archives contain long threads about RT perfomance.
  • Memory. RT uses a lot of memory in total. You need adopt amount of process(Apache, FastCGI, DB) to fit into 70% your memory under average workload. For example, if you have RT on Apache/mp/mysql with ~20-30 end-users, then it's enough to have 4-6 Apache processes this also control DB processes/threads because eache Apache instance with Apache::DBI has own DB connect each DB connect require one or more DB process/thread to support. Also people report that one FastCGI process can serve 2-3 Apache processes. You also have to leave room for memory usage growing, example: Apache/mp process has 10-25MB size under average workload, but on big incoming message memory footprint could grow up to 200-300MB. Out of memory is most perfomance problem it's blow up HDD activity for swap out/in memory.
  • DB. RT store all data there and it's standalone app which want perfomance tuning too. If you didn't try change DB config then may be you harry up with complains on RT.
  • One specific fix is to change MaxRequestsPerChild in Apache. This is by default unlimited, and Apache child processes can get unwieldy over time, especially with mod_perl. A value of 2500 may be better, or even 1500. Apache should be stopped and started (not just restarted) after making this change.
  • PerformanceTuning

Q: Why Bulk update and/or search builder pages are slow to load? ===

A: In most case it's a problem with User/Groups rights that makes too much users appears in the select owner dropdown. If this dropdown seems to contains more than wanted people, then check everywhere (Global rights/ Queue rights) in RT rights to see if OwnTicket right is not granted to Everyone, Unprivileged or a group that shouldn't have this right and contains many people. You can also run the following SQL query on the RT database to find each objects that grant OwnTicket:

SELECT * FROM ACL where RightName='OwnTicket';

Example:

mysql> select * from ACL where RightName='OwnTicket';
      +------+---------------+-------------+-----------+------------+----------+-------------+---------------+
      | id   | PrincipalType | PrincipalId | RightName | ObjectType | ObjectId | DelegatedBy | DelegatedFrom |
      +------+---------------+-------------+-----------+------------+----------+-------------+---------------+
      |   47 | Group         |           5 | OwnTicket | RT::Queue  |      12  |          0  |             0 |
      
      

Here OwnTicket is granted to group "5" (default Id of Unprivileged group) on queue "12". Check this on the UI: http://.../rt/Admin/Queues/GroupRights.html?id=12

If you switched to Postgresql you might consider to do some DB maintenance (Vacuum and Analyse): https://forum.bestpractical.com/t/performance-problems-with-postgres-and-rt4-2/31817


User Rights

Q: What rights should a user have to be able to change the owner of a ticket?

A:

The User can be owner of a ticket only if he has the OwnTicket right (either Global or Queue specific).

Current user who tries to change ownership of ticket have to have rights also, see below:

  • If the ticket's current Owner is Nobody then the user either needs the TakeTicket or the ModifyTicket right.
  • If the ticket's current Owner is not Nobody and not the current user then the current user either needs the 'ModifyTicket' or the 'StealTicket' right.
  • In other cases the 'ModifyTicket' right allows the user to change ownership.

One restriction is always in effect: If the ticket's owner is not Nobody and is not the current user then the current user can change owner only if he uses 'Steal' or via a 'Force owner change' (via bulk update).

This is correct for RT-3.0.6 and could be changed in future.

See also PrivilegedUsers

Attachments

Q: Attachments greater then xxx dropped silently, or produced a HTTP 500 error. Where is the problem?

A1: Check RT's Config option MaxAttachmentSize.

A2: Are you using MySQL or MariaDB? Do you see errors in the Apache error log that look like this?

Attachment insert failed: Got a packet bigger than 'max_allowed_packet' bytes
DBD::mysql::st execute failed: Lost connection to MySQL server during query at ...

The size of the attachment has exceeded the allowed maximum packet size. Make sure the max_allowed_packet in /etc/my.cnf is set to an appropriate value. For any supported version of MySQL and MariaDB:

[mysqld]
max_allowed_packet=16M

Please refer to the MySQL docs for more information.

A3: Are you using Apache's mod_security? It may be detecting a pattern match in the attachment and this may appear to be related to attachment size. If this is happening, Apache's error log will be recording Errors reported by mod_security.


Q: My attachments are corrupted?

A: If you're on mysql, recently upgraded mysql or RT then you skipped UPGRADING.mysql file and didn't read instructions well.


Q: My attachments are corrupted after DB restore from dump (mysqldump)?

A: Dump it with --default-character-set=binary (it's only actual for 3.6, properly upgraded or new RT 3.8 doesn't need this)

Templates

Q: The 'resolve' Transaction has no content

A: Status change (Resolve) is a standalone transaction, The Reply or Comment that may accompany it is another standalone transaction, therefore the Content of the resolve transaction is empty.

AddLastCommentToMail is a template part which you can use to add last comment to email.


Q: How can I change the headers in a mail template?

A: Default headers such as 'subject' and 'from' can be overridden with values at the top of templates. Many of the default templates show examples of modifying the subject. Some other examples may be available in Contributions and Template.


Q: How to change From line in outgoing mail.

A: Override From header with Template feature.

<Don't add empty lines at the beginning to use this feature>
From: Example Support Department <support@example.com>
Sender: Example Support Department <support@example.com>
<add headers after least at empty line>

See also: previouse question, Template, UseActorAsSender, MultipleOutgoingEmailAddresses.


Q: RT doesn't send email with error

error:    unexpected end of header
error:    couldn't parse head; error near:
          /opt/rt3/lib/RT/Template_Overlay.pm:352

A: Your template does not start with a blank line or header line(s) followed by a blank line. See also: Template


Q: RT doesn't send email with the error

No recipients found. Not sending.

A: Refer to the Mail gate section of this FAQ; this is not a template-specific problem. However, this may be a symptom of defining a faulty value for RTAddressRegexp in your site configuration file -- make sure it isn't filtering out addresses to whom you intend to send mail.


Q: How do I make a queue-specific template be sent instead of the global default for a particular condition or transaction?

A: A queue-specific template with the same name as a global template will replace the global template in scrips for that queue. For example, if you have a queue-specific template called "Autoreply", it will be sent instead of the global template of the same name.

Database

Q: Where can I find database schema diagrams?

A: DBSchema


Q: mysql.sock

A: MysqlSocketConfiguration


Q: How are passwords stored in RT's database?

A: PasswordsInDB


Q: I lost the root password how can i reset it?

A: PasswordsInDB


Q: Can I delete Tickets from RT's DB?

A: RT itself does not delete anything from the database, but you can use RTx-Shredder extension. Note that Shredder comes pre-installed with 3.8.x


Q: I merged ticket with id "a" into ticket with id "b", how can I change this to be a merge into ticket with id "c"?

A: Here is some steps to do that, but be carefull that this is at your own risk and must be done when really needed and as less often as possible (tested against RT 3.2.1).

  • Connect to your rt database,
  • identify the merge in the "links" table (look at the id "a" in the base field and id "b" in the target field),
  • change "b" to "c" in this row in the following fields: target,localtarget,localbase,
  • identify the ticket "a" into the tickets table (look at the id field)
  • change the "EffectiveId" field to "c" for this row
  • connect to the rt WEBUI, find the ticket "b" and remove unwanted "ccs/adminccs/requestors" comming from ticket "a"

You also need to look up the Transaction for the Merge and change the content. Find it by SELECT * FROM Transactions where Ticket = "a";. In rt3.4.x and later use SELECT * FROM Transactions where objectid=a;.


Q: Can RT handle usernames which contain only numbers?

A: No. Use alphabetic prefix instead, for eg 'u'.


Q: I created a ticket by pasting from a word document. RT chokes on the ticket, and my database log (Postgresql) says something like: 1-1 ERROR: invalid byte sequence for encoding "(Something other then UNICODE)". Why is this, and how do I fix it?

A: Your database must be using UNICODE encoding, to allow things like the em-dash (character 0x96) to be INSERTed. Here is a nice script that will convert all your Postgresql Databases to UNICODE - Thanks Google and Magnus Hagander http://www.hagander.net/

#!/bin/sh
      
      /usr/local/pgsql/bin/psql template1 postgres -A -t -c "SELECT datname FROM pg_database WHERE datallowconn AND encoding=6 AND NOT datname ~ '.*_s'" | while read D ; do
      echo "Converting $D"
      echo "-- start" > $D.dump
      echo "ALTER DATABASE $D RENAME TO ${D}_s;" >> $D.dump
      echo "CREATE DATABASE $D ENCODING='UNICODE' TEMPLATE=template0;" >> $D.dump
      echo "\\connect $D" >> $D.dump
      /usr/local/pgsql/bin/pg_dump -U postgres $D >> $D.dump
      /usr/local/pgsql/bin/psql -v ON_ERROR_STOP=1 -U postgres template1 -f $D.dump
      echo Exitcode $?
      done
      

User Authentication

Q: How can I integrate RT with my existing database of users?

A: There are a number of different ways allowing you to authenticate users against external databases including LDAP, SQL, Flat Files, and many other ways. The information you need is on the ExternalAuthentication page of this wiki.

Where to get help

Q: Where can I get help/information about RT?

A: Looking for help or info on RT? Information is in many places - here are some places to look:

  • IRC
    • Channel #rt on the irc.perl.org