Module: tools Branch: master Commit: a3bc1bebd8870d08eb2593609ef72b64ad01b24a URL: http://source.winehq.org/git/tools.git/?a=commit;h=a3bc1bebd8870d08eb2593609...
Author: Francois Gouget fgouget@codeweavers.com Date: Thu May 15 15:55:23 2014 +0200
testbot/TestAgent: Retry the Wait RPC if the connection gets broken.
This seems necessary to work around network flakiness.
---
testbot/lib/WineTestBot/TestAgent.pm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/testbot/lib/WineTestBot/TestAgent.pm b/testbot/lib/WineTestBot/TestAgent.pm index fb14b38..b22fb06 100644 --- a/testbot/lib/WineTestBot/TestAgent.pm +++ b/testbot/lib/WineTestBot/TestAgent.pm @@ -1232,8 +1232,12 @@ sub Wait($$$;$) # The process has quit last if (defined $Result);
- # Retry only if the timeout occurred on the remote end - last if ($self->{err} !~ /timed out waiting/); + # The only 'error' we should be getting here is the TestAgent server + # telling us it timed out waiting for the process. However flaky network + # connections like to break while we're waiting for the reply. So retry + # if that happens and let the automatic reconnection detect real network + # issues. + last if ($self->{err} !~ /(?:timed out waiting|network read timed out)/); } } $self->SetTimeout($OldTimeout);