Module: tools Branch: master Commit: e81915fade44523f693da35762847a521feea824 URL: http://source.winehq.org/git/tools.git/?a=commit;h=e81915fade44523f693da3576...
Author: Francois Gouget fgouget@codeweavers.com Date: Fri Oct 26 18:18:28 2012 +0200
testbot/lib: Automatically reconnect to the database.
This way short idle timeouts don't break WineTestBot.
---
testbot/lib/ObjectModel/DBIBackEnd.pm | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/testbot/lib/ObjectModel/DBIBackEnd.pm b/testbot/lib/ObjectModel/DBIBackEnd.pm index 5e61eed..72ff3c5 100644 --- a/testbot/lib/ObjectModel/DBIBackEnd.pm +++ b/testbot/lib/ObjectModel/DBIBackEnd.pm @@ -43,7 +43,13 @@ sub GetDb { my $self = shift;
- if (! defined($self->{Db})) + if (defined $self->{Db} && !$self->{Db}->ping()) + { + # This connection no longer works, probably due to the database idle timeout + $self->{Db}->disconnect(); + $self->{Db} = undef; + } + if (!defined $self->{Db}) { $self->{Db} = DBI->connect(@{$self->{ConnectArgs}}); }