Changeset 8241 for lang/perl/App-MadEye

Show
Ignore:
Timestamp:
03/21/08 13:01:33 (9 months ago)
Author:
tokuhirom
Message:

タイムアウトエラーが、通常エラーとしてカウントされないためにルールなどの影響をうけなくて残念なので、通常エラー扱いにした。

Location:
lang/perl/App-MadEye/trunk/lib/App/MadEye
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/App-MadEye/trunk/lib/App/MadEye/Plugin/Worker/Simple.pm

    r8016 r8241  
    1212 
    1313    my $timeout = $self->config->{config}->{task_timeout} or die "missing task_timeout"; 
    14     timeout $timeout, "watching $args->{target} $args->{plugin}", sub { 
     14 
     15    my $error = timeout $timeout, "watching $args->{target} $args->{plugin}", sub { 
    1516        if ( my $message = $args->{plugin}->is_dead( $args->{target} ) ) { 
    1617            $context->add_result( 
     
    2122        } 
    2223    }; 
     24 
     25    if ($error) { 
     26        $context->add_result( 
     27            plugin  => $args->{plugin}, 
     28            target  => $args->{target}, 
     29            message => $error, 
     30        ); 
     31    } 
    2332 
    2433    $context->log( debug => "finished $args->{target} by $args->{plugin}" ); 
  • lang/perl/App-MadEye/trunk/lib/App/MadEye/Util.pm

    r8234 r8241  
    44use base qw/Exporter/; 
    55 
    6 our @EXPORT = qw/timeout get_schema_from_pod snmp_session/; 
     6our @EXPORT = qw/timeout get_schema_from_pod context snmp_session/; 
    77 
    88use Sys::Syslog qw/:DEFAULT/; 
     
    1313use Net::SNMP; 
    1414 
     15sub context () { App::MadEye->context } 
     16 
    1517sub timeout($$&) {    ## no critic. 
    1618    my ( $secs, $msg, $code ) = @_; 
    17     App::MadEye->context->log(debug => "run timer: '$msg', $secs");; 
     19 
     20    context->log(debug => "run timer: '$msg', $secs");; 
     21 
    1822    my $last_alarm = 0; 
     23    my $err; 
    1924    eval { 
    2025        local $SIG{ALRM} = sub { die "Time out error: $msg" }; 
     
    2328        my $start_time = gettimeofday(); 
    2429            $code->(); 
    25         App::MadEye->context->log('debug' => "stopwatch: " . (gettimeofday() - $start_time)); 
     30        context->log('debug' => "stopwatch: " . (gettimeofday() - $start_time)); 
    2631    }; 
    2732    if ($@) { 
    28         my $err = $@; 
    29         App::MadEye->context->log('error' => $err); 
    30         warn $err; 
     33        $err = $@; 
     34 
     35        context->log('error' => $err); 
    3136    } 
    3237    alarm $last_alarm; # restore 
     38 
     39    return $err; 
    3340} 
    3441