Marius Timmer (526c0a7e) at 01 Apr 11:49
Log each ticket which is going to be exported
In diesem konkreten Fall lag es wohl in der Tat an bestimmten Tickets. Durch die neue Log-Ausgabe im Syslog wird nun angezeigt, welches Ticket als nächstes exportiert wird. Dieses kleine Feature kam mit dem Commit 526c0a7e auf master und REL-6_0_0 bzw. auch auf die Branches REL-5_0_11 und REL-3_2_0.
Ob dies nun wirklich ein Bug ist, oder kaputte Tickets zum Fehler führen, ist noch nicht geklärt. Unter Umständen kann das Plugin aber resistenter gemacht werden.
Marius Timmer (526c0a7e) at 01 Apr 11:38
Log each ticket which is going to be exported
Marius Timmer (bdeb75b9) at 01 Apr 11:38
Log each ticket which is going to be exported
Marius Timmer (19e7fee8) at 01 Apr 11:38
Log each ticket which is going to be exported
Marius Timmer (526c0a7e) at 01 Apr 11:38
Log each ticket which is going to be exported
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