Select Page

NETWAYS Blog

Request Tracker 4.4 Security Update and UTF8 issues with Perl’s DBD::Mysql 4.042

Last week, Best Practical announced that there are critical security fixes available for Request Tracker. We’ve therefore immediately pulled the patches from 4.4.2rc2 into our test stages and rolled them out in production.

Update == Broken Umlauts

One thing we did notice too late: German umlauts were broken on new ticket creation. Text was simply cut off and rendered subjects and ticket body fairly unreadable.

Encoding issues are not nice, and hard to track down. We rolled back the security fix upgrade, and hoped it would simply fix the issue. It did not, even our production version 4.4.1 now led into this error.
Our first idea was that our Docker image build somehow changes the locale, but that would have at least rendered “strange” text, not entirely cut off. Same goes for the Apache webserver encoding. We’ve then started comparing the database schema, but was not touched in these regards too.

DBD::Mysql UTF8 Encoding Changes

During our research we learned that there is a patch available which avoids Perl’s DBD::mysql in version 4.042. The description says something about changed behaviour with utf8 encoding. Moving from RT to DBD::Mysql’s Changelog there is a clear indication that they’ve fixed a long standing bug with utf8 encoding, but that probably renders all other workarounds in RT and other applications unusable.

2016-12-12 Patrick Galbraith, Michiel Beijen, DBI/DBD community (4.041_1)
* Unicode fixes: when using mysql_enable_utf8 or mysql_enable_utf8mb4,
previous versions of DBD::mysql did not properly encode input statements
to UTF-8 and retrieved columns were always UTF-8 decoded regardless of the
column charset.
Fix by Pali Rohár.
Reported and feedback on fix by Marc Lehmann
(https://rt.cpan.org/Public/Bug/Display.html?id=87428)
Also, the UTF-8 flag was not set for decoded data:
(https://rt.cpan.org/Public/Bug/Display.html?id=53130)

 

Solution

Our build system for the RT container pulls in all required Perl dependencies by a cpanfile configuration. Instead of always pulling the latest version for DBD::Mysql, we’ve now pinned it to the last known working version 4.0.41.

 # MySQL
-requires 'DBD::mysql', '2.1018';
+# Avoid bug with utf8 encoding: https://issues.bestpractical.com/Ticket/Display.html?id=32670
+requires 'DBD::mysql', '== 4.041';

Voilá, NETWAYS and Icinga RT production instances fixed.

Conclusion

RT 4.4.2 will fix that by explicitly avoiding the DBD::Mysql version in its dependency checks, but older installations may suffer from that problem in local source builds. Keep that in mind when updating your production instances. Hopefully a proper fix can be found to allow a smooth upgrade to newer library dependencies.
If you need assistance with building your own Request Tracker setup, or having trouble fixing this exact issue, just contact us 🙂

Request Tracker Starterpakete verfügbar

rt_centred_200x100 Seit vielen Jahren setzen wir nun bei uns intern die Ticket Lösung Request Tracker ein und bieten hierfür Dienstleistungen im Bereich Konzeptionierung, Einrichtung, Entwicklung und Support an.
Um einen kostengünstigen und vereinheitlichten Einstieg in die Open Source Ticketlösung zu ermöglichen, haben wir unser Portfolio in diesem Zuge um zwei Starterpakete erweitert. Somit kann ohne große finanzielle Vorleistungen ein Basissetup aufgebaut werden, welches als Test- und Reviewumgebung dient. Ein späterer Ausbau bzw. eine Erweiterung kann im Vorfeld natürlich berücksichtigt werden, sollte die Ticketlösung Produktiv genommen werden.
Im Standard-Paket sind hierbei folgende Leistungen zum Festpreis beinhaltet:

  • Grundinstallation des Request Trackers auf Debian / Ubuntu / CentOS
  • Anbindung an ein Mail-System per SMTP-Transport oder Fetch-Mail
  • Anbindung an einen ActiveDirectory / LDAP-Dienst
  • Beispielhafte Einrichtung von Queues und Benutzern
  • Beispielhafte Einrichtung von Berechtigungen
  • Grundeinführung in die Bedienung der Oberfläche

Für das Premium-Paket gibt es weiterführende Leistungen, wie bspw. Anbindung externer Datenquellen, Customizing und RT-Assets:

  • Anbindung Externer Datenquellen per Schnittstellen (API, Soap, Sql)
  • Grundeinrichtung und Einführung in RT Assets
  • Customizing von Templates und Articles
  • Konfiguration von Lifecycles, Status, SLA’s

Wer sich allgemein über den Request Tracker informieren möchte, kann dies mit unserer Übersichtsseite Warum Request Tracker oder unserem RT Webinar tun.
Selbstverständlich stehen wir bei Rückfragen natürlich zur Verfügung und bieten weiterführende Dienstleistungen und Workshops für Projekte an. Nehmen Sie hierfür einfach direkt Kontakt mit uns auf.

Christian Stein
Christian Stein
Manager Sales

Christian kommt ursprünglich aus der Personalberatungsbranche, wo er aber schon immer auf den IT Bereich spezialisiert war. Bei NETWAYS arbeitet er als Manager Sales und berät unsere Kunden in der vertrieblichen Phase rund um das Thema Monitoring. Gemeinsam mit Georg hat er sich Mitte 2012 auch an unserem Hardware-Shop "vergangen".

Monthly Snap August > Foreman, Request Tracker, OSMC, NodeJS, TestKitchen, Git, Online Store, Trainings, MesosCon

Snsp August started with Dirk’s review on our Foreman Birthday Event.
Michael followed with our new Request Tracker features.
Julia told us about the finalised OSMC program while Enrico went on with his reports about NodeJS.
Blerim explained how to do Chef Cookbook Integration Tests with TestKitchen and Michael shared some tricks with Git.
Furthermore Isabel celebrated our new Online Store and Daniela announced the trainings in 2017.
Finally Achim told us about his trip to listen to MesosCon in Amsterdam.

Neuerungen in RT 4.4

Wir setzen seit vielen Jahren RT (Request Tracker) als Ticket-System bei uns ein und bieten unseren Kunden ebenso Installations-Support sowie Kontingente für die Entwicklung von eigenen Plugins. Da die Pflege von RT und Upgrades immer gut getestet sein wollen, hat Marius gemeinsam mit NMS eine Docker-Infrastruktur etabliert, die sowohl Produktions- als auch Development-Umgebungen gleichermassen bedient. Seit einiger Zeit unterstütze ich nun Marius hierbei und unser aktuelles Projekt war das Upgrade auf die neueste RT-Version 4.4.
Nachdem wir letzte Woche die Quellen von RT in einem Feature-Branch aktualisiert hatten, ging es sogleich ans Testen von unseren Anpassungen und Plugins. Gott sei Dank mussten nur einige kleinere Änderungen durchgeführt werden, sowie einige Plugins endlich in den Core gewandert sind (RT::Authen::ExternalAuth, Assets, SLA). Dank der erfolgreichen Tests kam dann auch die Produktionsumgebung heut früh um 6 mit dem Update dran.
Im folgenden einige der Highlights von RT 4.4.
 

File Upload

Endlich per Drag-and-Drop ohne Page-Reload Dateien uploaden – wer hat sich das noch nicht sehnsüchtig gewünscht? 🙂
rt_file_upload
 

Timer für Tickets

Man steht immer mal wieder vor dem Problem, dass man sich frägt – wie lange habe ich denn nun an diesem Ticket gearbeitet? RT 4.4 bietet nunmehr die Möglichkeit via Popup die Zeit zu stoppen. Damit ist die Zeiterfassung gesichert 😉
rt_ticket_timer
 

Folge-Ticket mit Referenz auf bestehendes Ticket anlegen

Es kommt immer mal wieder vor, dass man eine Folge-Ticket anlegen möchte – etwa ein zusätzliches Development-TODO bei einem Problem in der Support-Queue. Früher musste man dazu ein neues Ticket anlegen, und dann manuell die Links aktualisieren. Jetzt klappt das direkt aus dem Ticket-Display heraus.
rt_ticket_links_create_refers_to
 

Keyboard Shortcuts

Mal eben schnell ins Suchfeld springen? Kein Problem. “?” listet alle verfügbaren Shortcuts auf. Ich bin mir sicher, dass es hier zukünftig noch mehr brauchbare Shortcuts geben wird. All jene die nicht mit MacOS und Trackpad “wischen” werden auch “gb” und “gf” lieben 🙂
rt_keyboard_shortcuts
 

Infinite Scroll

Bisher musste man bisweilen warten bis die komplette Seite geladen war, um auch die Ticket-History anzeigen zu können. Das war mitunter etwas hakelig. Mit RT 4.4 gibt es eine neue Option “as you scroll” in den Benutzer-Einstellungen, welche auch global in der RT_SiteConfig.pm gesetzt werden kann. Damit lädt die Ticket-Übersicht deutlich schneller.
rt_preferences_ticket_display_as_you_scroll
 

TicketSQL-Filter: __Active__ und __Inactive__

Vormals hat man die Suche etwa mit Status = ‘new’ or Status = ‘open’ or Status = ‘stalled’ gefüttert um alle aktiven Tickets anzuzeigen. In RT 4.4 sieht das wie folgt aus:

Status = '__Active__'

 
Noch nicht genug? Gerne unterstützen wir euch bei der Entwicklung von eigenen Plugins und/oder Scrips. Kommt einfach auf uns zu 🙂
 

Wiederholung des Request Tracker Webinars

Gute Neuigkeiten für alle die das heutige Webinar verpasst haben: Aufgrund von technischen Problemen musste das WebinarRequest Tracker: Open Source Ticket System” leider abgebrochen werden.
Wir möchten uns aber noch einmal für die Geduld aller Teilnehmer bedanken – hoffentlich konnten wir fragentechnisch zumindest einen ersten guten Eindruck liefern.
Da wir natürlich die Lösung und die Vorzüge aufzeigen wollen, haben wir uns jetzt entschlossen, das Webinar bereits morgen, am 30. April 2014 um 10:30 Uhr zu wiederholen! Um auch neuen Teilnehmern einen Einstieg zu liefern, werden wir auch die bereits genannten Themen noch einmal ansprechen.
Wer sich registrieren möchte, sollte das gleich tun bevor alle Plätze ausgebucht sind.
Bis morgen!

Christian Stein
Christian Stein
Manager Sales

Christian kommt ursprünglich aus der Personalberatungsbranche, wo er aber schon immer auf den IT Bereich spezialisiert war. Bei NETWAYS arbeitet er als Manager Sales und berät unsere Kunden in der vertrieblichen Phase rund um das Thema Monitoring. Gemeinsam mit Georg hat er sich Mitte 2012 auch an unserem Hardware-Shop "vergangen".