我最近inheritance了一个RT安装,升级到4.2.12之后,不能再创build脚本了。 如果有人正在尝试创build本地特定队列或全局的脚本,就会发生这种情况。 标准的“发生内部错误”信息被踢出。
当我查看syslog时,我看到了
[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 }
我已经validation$ args {'TicketObj'}是什么是未定义的。 我有点难以忍受从哪里出发。 任何帮助表示赞赏。
之前的pipe理员做了一些改变,指出了错误的networking路线。 我猜想一些URL版本在版本之间改变了。