From 490030ab3d72b3fec514687883b56b5f10918bef Mon Sep 17 00:00:00 2001 From: garnier-quentin Date: Wed, 8 Jul 2020 11:50:08 +0200 Subject: [PATCH] Fix #2086 --- centreon-plugins/centreon/plugins/dbi.pm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/centreon-plugins/centreon/plugins/dbi.pm b/centreon-plugins/centreon/plugins/dbi.pm index 70bc85f6b..fa11987c3 100644 --- a/centreon-plugins/centreon/plugins/dbi.pm +++ b/centreon-plugins/centreon/plugins/dbi.pm @@ -72,11 +72,15 @@ sub new { # Sometimes, we need to set ENV $self->{env} = undef; - $self->set_signal_handlers(); - return $self; } +sub prepare_destroy { + my ($self) = @_; + + %handlers = (); +} + sub set_signal_handlers { my $self = shift; @@ -93,6 +97,7 @@ sub class_handle_ALRM { sub handle_ALRM { my $self = shift; + $self->prepare_destroy(); $self->disconnect(); $self->{output}->output_add(severity => $self->{sql_errors_exit}, short_msg => 'Timeout'); @@ -213,7 +218,8 @@ sub connect { $ENV{$_} = $self->{env}->{$_}; } } - + + $self->set_signal_handlers(); alarm($self->{timeout}) if (defined($self->{timeout})); $self->{instance} = DBI->connect( "DBI:". $self->{data_source}, @@ -222,6 +228,7 @@ sub connect { { RaiseError => 0, PrintError => 0, AutoCommit => 1, %{$self->{connect_options_hash}} } ); alarm(0) if (defined($self->{timeout})); + $self->prepare_destroy(); if (!defined($self->{instance})) { my $err_msg = sprintf('Cannot connect: %s', defined($DBI::errstr) ? $DBI::errstr : '(no error string)');