我最近继承了一个 RT 安装,在将其升级到 4.2.12 后,无法再创建脚本。如果有人试图在特定队列或全局范围内创建脚本,就会发生这种情况。标准的“发生内部错误”消息被踢出。
当我查看系统日志时,我看到
[17510] Can't call method "Queue" on an undefined value at /opt/rt4/sbin/../lib/RT/Scrip.pm line 450.#012#012Stack:#012 [/opt/rt4/sbin/../lib/RT/Scrip.pm:450]#012
[/opt/rt4/share/html/Admin/Elements/EditScrip:83]#012
[/opt/rt4/share/html/Widgets/TitleBox:56]#012
[/opt/rt4/share/html/Admin/Elements/EditScrip:89]#012
[/opt/rt4/share/html/Admin/Queues/Scrip.html:52]#012
[/opt/rt4/share/html/Admin/autohandler:49]#012
[/opt/rt4/sbin/../lib/RT/Interface/Web.pm:681]#012
[/opt/rt4/sbin/../lib/RT/Interface/Web.pm:369]#012
[/opt/rt4/share/html/autohandler:53]#012
Trace begun at /opt/rt4/sbin/../lib/RT.pm line 303#012Log::Dispatch::__ANON__('Log::Dispatch=HASH(0x1601220)', 'Can\'t call method "Queue" on an undefined value at /opt/rt4/sbin/../lib/RT/Scrip.pm line 450.^J^JStack:^J
[/opt/rt4/sbin/../lib/RT/Scrip.pm:450]^J
[/opt/rt4/share/html/Admin/Elements/EditScrip:83]^J
[/opt/rt4/share/html/Widgets/TitleBox:56]^J
[/opt/rt4/share/html/Admin/Elements/EditScrip:89]^J
[/opt/rt4/share/html/Admin/Queues/Scrip.html:52]^J
[/opt/rt4/share/html/Admin/autohandler:49]^J
[/opt/rt4/sbin/../lib/RT/Interface/Web.pm:681]^J
[/opt/rt4/sbin/../lib/RT/Interface/Web.pm:369]^J
[/opt/rt4/share/html/autohandler:53]^J') called at /opt/rt4/sbin/../lib/RT/Interface/Web/Handler.pm line 208#012
HTML::Mason::Exception::as_rt_error('HTML::Mason::Exception=HASH(0x7a4ee40)') called at /usr/local/share/perl5/HTML/Mason/Exceptions.pm line 278#012
HTML::Mason::Exception::as_string('HTML::Mason::Exception=HASH(0x7a4ee40)', undef, '') called at /usr/local/share/perl5/HTML/Mason/Request.pm line 567#012
HTML::Mason::Request::_handle_error('RT::Interface::Web::Request=HASH(0x7a36a48)',
HTML::Mason::Exception=HASH(0x7a4ee40)') called at /usr/local/share/perl5/HTML/Mason/Request.pm line 518#012
HTML::Mason::Request::exec('RT::Interface::Web::Request=HASH(0x7a36a48)') called at /usr/local/share/perl5/HTML/Mason/PSGIHandler.pm line 96#012eval at /usr/local/share/perl5/HTML/Mason/PSGIHandler.pm line 96#012HTML::Mason::Requeue
有问题的代码位于 Scrip.pm 中的 Stage() 方法中
446 sub Stage {
447 my $self = shift;
448 my %args = ( TicketObj => undef, @_ );
449 my $queue = $args{'TicketObj'}->Queue;
450 my $rec = RT::ObjectScrip->new( $self->CurrentUser );
451 $rec->LoadByCols( Scrip => $self->id, ObjectId => $queue );
452 return $rec->Stage if $rec->id;
453
454 $rec->LoadByCols( Scrip => $self->id, ObjectId => 0 );
455 return $rec->Stage if $rec->id;
456
457 return undef;
458 }
我已经验证了 $args{'TicketObj'} 是未定义的。我有点不知所措,不知道接下来该怎么办。任何帮助我都感激不尽。
答案1
前任管理员做了一些指向错误网络路由的更改。我猜有些 URL 管道在发布之间发生了变化。