[rt-users] Still issues with Nagios Autoclose - Commit dies

Giuseppe Sollazzo gsollazz at sgul.ac.uk
Tue Jul 5 11:07:40 EDT 2011


Hi all,
I'm experimenting with the Nagios Autoclose.

It seems I get an abort caused by a null pointer exception.

[Tue Jul  5 14:47:02 2011] [info]: Extracted type, category, host, 
problem_type and problem_severity from
subject with values RECOVERY, Service, sambadev2, sambadev2_root and OK 
(/opt/rt4/local/plugins/RT-Extension-Nagios/lib/RT/Action/UpdateNagiosTickets.pm:35)
[Tue Jul  5 14:47:02 2011] [error]: Scrip Commit 12 died. - Can't call 
method "SetStatus" on an undefined value at 
/opt/rt4/local/plugins/RT-Extension-Nagios/lib/RT/Action/UpdateNagiosTickets.pm 
line 76.

Stack:
   
[/opt/rt4/local/plugins/RT-Extension-Nagios/lib/RT/Action/UpdateNagiosTickets.pm:76]
   [/opt/rt4/sbin/../lib/RT/ScripAction.pm:232]
   [/opt/rt4/sbin/../lib/RT/Scrip.pm:475]
   [/opt/rt4/sbin/../lib/RT/Scrips.pm:189]
   [/opt/rt4/sbin/../lib/RT/Transaction.pm:198]
   [/opt/rt4/sbin/../lib/RT/Record.pm:1450]
   [/opt/rt4/sbin/../lib/RT/Ticket.pm:669]
   [/opt/rt4/sbin/../lib/RT/Interface/Email.pm:1495]
   [/opt/rt4/share/html/REST/1.0/NoAuth/mail-gateway:61] 
(/opt/rt4/sbin/../lib/RT/Scrip.pm:483)
[Tue Jul  5 14:47:02 2011] [info]: Ticket 306 created in queue 'Nagios' 
by gsollazz (/opt/rt4/sbin/../lib/RT/Ticket.pm:681)


What is causing this?

I have this as my reg exp:

     if ( my ( $type, $category, $host, $problem_type, $problem_severity ) =
         $subject =~
m{(PROBLEM|RECOVERY|ACKNOWLEDGEMENT)\s+(Service|Host) Alert: 
([^/]+)/?(.*)\s+is\s+(\w+)}i
       ) 
#m{(PROBLEM|RECOVERY|ACKNOWLEDGEMENT)\s+alert\s+-\s+(Service|Host): 
([^/]+)/?(.*)\s+is\s+(\w+)}i 
#qr{(PROBLEM|RECOVERY|ACKNOWLEDGEMENT)\s+(Service|Host) Alert: 
([^/]+)/?(.*)\s+is\s+(\w+)}i
     {
         $problem_type ||= '';
         $RT::Logger->info(
"Extracted type, category, host, problem_type and problem_severity from
subject with values $type, $category, $host, $problem_type and 
$problem_severity"
         );
         my $tickets = RT::Tickets->new( $self->CurrentUser );
         $tickets->LimitQueue( VALUE => $new_ticket->Queue )
           unless RT->Config->Get('NagiosSearchAllQueues');
         $tickets->LimitSubject(
             VALUE => "$category $host"
               . ( $problem_type ? "/$problem_type" : '' ),
             OPERATOR => 'LIKE',
         );
         my @active = RT::Queue->ActiveStatusArray();
         for my $active (@active) {
             $tickets->LimitStatus(
                 VALUE    => $active,
                 OPERATOR => '=',
             );
         }

However, line 78 is just this:

                 my ( $ret, $msg ) = $merged_ticket->SetStatus($resolved);

So I assume somewhat it doesn't manage to merge the tickets. But why 
does it fail here and not, say, when it calls "MergeInto"?

Thanks to anyone who can help,
Giuseppe

-- 
____________________________________

Giuseppe Sollazzo
Senior Systems Analyst
Computing Services
Information Services
St. George's, University Of London
Cranmer Terrace
London SW17 0RE

Email: gsollazz at sgul.ac.uk
Direct Dial: +44 20 8725 5160
Fax: +44 20 8725 3583





More information about the rt-users mailing list