Hallo OTRS-Community,
verwendete Version: OTRS 4.0.15 bzw. OTRS 4.0.18.
perl, v5.10.0
In unserem System landete ein Ticket, erzeugt per E-Mail, dass anscheinend
zwei unterschiedliche Zeichencodierungen enthält. Die Signatur der E-Mail
enthält Text und ein Telefon-Symbol.
Beim Beantworten tritt dann folgende Fehlermeldung auf.
-e: (in cleanup) Can't call method "Get" on an undefined value at
/opt/otrs/Kernel/System/AuthSession/DB.pm line 583.
\n\t(in cleanup) Can't call method "Get" on an undefined value at
/opt/otrs/Kernel/System/AuthSession/DB.pm line 583.\n
Diese Fehlermeldung ergibt sich auch, wenn man versucht, ein Telefon-Ticket
mit dem gesamten Text inkl. dem Symbol zu erstellen. Dabei wird zwar ein neues
Ticket erzeugt, es enthält aber keinen Artikel.
Versucht man dagegen das Erstellen eines Telefon-Tickets nur mit dem Text oder
nur mit dem Symbol, funktioniert die Ticketerstellung einwandfrei.
In Datei: AgentTicketPhone.pm (/Kernel/Modules) gibt es dabei die beiden
Funktionen
# create new ticket and article
...
# create new ticket, do db insert
my $TicketID = $Self->{TicketObject}->TicketCreate(...);
und
my $ArticleID = $Self->{TicketObject}->ArticleCreate(
...
Charset => $Self->{LayoutObject}->{UserCharset},
...);
Bzw. beim Beantworten eines Tickets (AgentTicketCompose.pm) gibt es die
Funktion
# send email
my $ArticleID = $Self->{TicketObject}->ArticleSend(
...
Charset => $Self->{LayoutObject}->{UserCharset},
...);
Ich denk mal. hier kann kein eindeutiger, valider Wert für den Parameter
"UserCharset" ermittelt werden. Somit auch kein Artikel erzeugt und in die
Datenbank geschrieben werden.
Die Fehlermeldung wird generiert in der Funktion
sub DESTROY {...};
(/Kernel/System/AuthSession)
Hier wird anscheinend versucht, den Vorgang, den neuen Artikel in die
Datenbank zu schreiben, aus dem Cache zu löschen. Da der Schreibvorgang aber
nicht stattgefunden hat, gibt's auch nichts zu löschen.
Und das Encod-Modul zur Umwandlung in utf-8 greift anscheinend nur, wenn es
sich nur um eine einheitliche, nicht-utf-8-Codierung handelt.
Dieser Fehler trat allerdings erst auf, nachdem neue Perl-Patches installiert
wurden. Eine E-Mail mit der selben Signatur (Text und Symbol) landete im Januar
2016 schon mal in unserem System und da funktionierte alles einwandfrei.
Das Modul
Encode.pm
Kernel/System/
nutzt ja die Perl-Encode-Module.
# This module will use Perl's Encode module (Perl 5.8.0 or higher is
required).
Gibt es für dieses Problem eine Lösung?
Vielen Dank
Gruß
Sepp