Schlagwörter: Log shmwrite "Perl 5.34"
-
AutorBeiträge
-
-
16. August 2022 um 12:09 Uhr - Views: 933 #13557
Hallo.
ich habe otobo auf einem neuen Server installiert. Kein Docker, alles manuell nach Anleitung.
Lief auch Problemlos. Für die Migration habe ich dann den Ordner /opt/otrs vom alten Server (otrs 6) auf den neuen kopiert und ebenfalls einen SQL-Dump (mysql) gemacht und dann auf dem neuen Server eine Datenbank otrs angelegt und den Dump zurückgespielt.
Nun das Migrationstool aufgerufen, es lief alles problemlos und die Tickets wurden übernommen.
Seit heute kann ich mich aber nicht mehr am Webinterface anmelden. Sobald ich Benutzername und Kennwort eingebe, kommt nur eine weiße Seite mit „internal Server error“
im /var/log/apache2/error.log steht nur:
[:error] [pid 2203] Wide character in shmwrite at /opt/otobo/Kernel/System/Log.pm line 268.\n
Ansonsten keine Fehler. Weder im Syslog noch in /opt/otobo/log.
Hat jemand eine Idee, was es sein kann?
-
17. August 2022 um 13:31 Uhr #13561
Hallo Markus,
anhand der Zeilennummer sehe ich, dass es sich um OTOBO 10.0.x handeln muss. Zu der Fehlermeldung „Wide character in shmwrite “ gibt es das Github Issue 1082, https://github.com/RotherOSS/otobo/issues/1082. Der Fehler tritt also auf wenn OTOBO 10.0.x mit Perl 5.34 verwendet wird. Welche Version von Perl verwendest du? Bzw. was ist die Ausgabe von
perl -V:version
?Zur Behebung gibt es mindestens zwei Möglichkeiten:
- Upgrade auf OTOBO 10.1.4
- Patch der Datei _Kernel/System/Log.pm_
Aktuell sehen ich auch keinen Grund die Anpassung nicht in OTOBO 10.0.5 einfliessen zu lassen. Ich bespreche das intern.
Hier ist der ungetestete Patch, leider gibt es keine Attachments in diesem Forum.
diff --git a/Kernel/System/Log.pm b/Kernel/System/Log.pm
index e87ea9678e..f83e5e0093 100644
--- a/Kernel/System/Log.pm
+++ b/Kernel/System/Log.pm
@@ -257,15 +257,18 @@ sub Log {
$Self->{ lc $Priority }->{Message} = $Message;
}
- # write shm cache log
+ # Prepend the current log line to the shared memory segment.
+ # The oldest log lines might fall out of the window.
+ # shmwrite() might append "\0" bytes for padding.
if ( lc $Priority ne 'debug' && $Self->{IPC} ) {
$Priority = lc $Priority;
- my $Data = $LogTime . ";;$Priority;;$Self->{LogPrefix};;$Message\n";
- my $String = $Self->GetLog();
-
- shmwrite( $Self->{IPCSHMKey}, $Data . $String, 0, $Self->{IPCSize} ) || die $!;
+ my $LogLine = join ';;', $LogTime, $Priority, $Self->{LogPrefix}, $Message;
+ my $OldString = $Self->GetLog();
+ my $NewString = join "\n", $LogLine, $OldString;
+ $Kernel::OM->Get('Kernel::System::Encode')->EncodeOutput( \$NewString );
+ shmwrite( $Self->{IPCSHMKey}, $NewString, 0, $Self->{IPCSize} ) || die $!;
}
return 1;
-
20. August 2022 um 12:19 Uhr #13588
The same problem also popped up in the Znuny forum: https://community.znuny.org/viewtopic.php?t=43163&p=175351#p175351 . One answer correctly points to decoding the data passed to shmwrite: https://community.znuny.org/viewtopic.php?p=175334#p175334 .
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.