Endlosschleife beim Export
Es kam eine Nachricht von extern bezüglich eines gefundenen Bugs:
Bei einigen "defekten" Queues werden nur ca. 5 oder 6 PDFs erzeugt. Danach arbeitet das Tool stundenlang weiter, ohne dass weitere PDFs erzeugt würden. Der Server arbeitet dabei unter Volllast. Fehlermeldungen sehe ich keine, bzw. keine, die auf das Symptom passen würden.
Die Fehler die ich erhalte, führen bei den anderen Queues nicht zum Stillstand. Da fehlt mal ein Feld oder eine UserID. Bei einem gealterten System bestimmt nicht ungewöhnlich.
[Mon Mar 14 08:24:02 2022] otrs.Console.pl: DBD::mysql::st execute failed: Unknown column 'name' in 'field list' at /opt/otrs-prod/otrs-6.0.14/Kernel/System/DB.pm line 694. ERROR: OTRS-otrs.Console.pl-Admin::Queue::TicketExport-20 Perl: 5.24.1 OS: linux Time: Mon Mar 14 08:24:02 2022
Message: Unknown column 'name' in 'field list', SQL: 'SELECT title, first_name, last_name, login, pw, email, customer_id, phone, fax, mobile, street, zip, city, country, comments, valid_id, customer_id, name, street, zip, city, country, url, comments, valid_id, create_time, create_by, change_time, change_by, login FROM customer_user WHERE LOWER(login) = LOWER(?) LIMIT 1'
Traceback (14320): Module: Kernel::System::CustomerUser::DB::CustomerUserDataGet Line: 1219 Module: Kernel::System::CustomerUser::CustomerUserDataGet Line: 850 Module: Kernel::Output::PDF::Ticket::GeneratePDF Line: 171 Module: Kernel::Modules::AgentTicketPrint::Run Line: 101 Module: Kernel::System::TicketExport::CreatePDF Line: 267 Module: Kernel::System::TicketExport::Run Line: 86 Module: Kernel::System::Console::Command::Admin::Queue::TicketExport::Run Line: 96 Module: (eval) Line: 460 Module: Kernel::System::Console::BaseCommand::Execute Line: 454 Module: Kernel::System::Console::InterfaceConsole::Run Line: 80 Module: /opt/otrs/bin/otrs.Console.pl Line: 36
Das Script läuft damit weiter, das PDF ist augenscheinlich trotzdem vollständig.
Weiterhin musste ich nach allerersten Start diese Datei anpassen, weil das Script sonst gar nicht mehr gestartet ist:
/opt/otrs-prod/otrs-6.0.14/Kernel/Output/HTML/LinkObject/Ticket.pm
# check needed objects for my $Needed (qw(UserLanguage UserID)) { $Self->{$Needed} = $Param{$Needed} || die "Got no $Needed!"; }
-->
# check needed objects ### for my $Needed (qw(UserLanguage UserID)) { ### $Self->{$Needed} = $Param{$Needed} || die "Got no $Needed!"; ### }
Wenn die UserID nicht (mehr) existiert, stoppt das Script hier. Ich habe mich plump dazu entschieden, das zu ignorieren. Hat geklappt, die PDFs werden erzeugt ??
Unser System: otrs-6.0.14 mySQL-Datenbank