testbot/lib: Automatically reconnect to the database.

Francois Gouget fgouget at codeweavers.com
Fri Oct 26 11:18:28 CDT 2012


This way short idle timeouts don't break WineTestBot.
---
 testbot/lib/ObjectModel/DBIBackEnd.pm |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

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}});
   }
-- 
1.7.10.4



More information about the wine-patches mailing list