Repository: reef Updated Branches: refs/heads/master ac6785db4 -> 322aec5bf
[REEF-1243] Fix StreamingRemoteManagerTest tests which get stuck in AppVeyor This addressed the issue by * Using dedicated threads for long running and blocking Tasks. * Removing duplicated Wait calls in StreamingTransportServer. JIRA: [REEF-1243](https://issues.apache.org/jira/browse/REEF-1243) Pull request: This closes #996 Project: http://git-wip-us.apache.org/repos/asf/reef/repo Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/322aec5b Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/322aec5b Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/322aec5b Branch: refs/heads/master Commit: 322aec5bff326fce1666536e54e1e5b1b5dd15fc Parents: ac6785d Author: Andrew Chung <[email protected]> Authored: Wed May 11 10:16:36 2016 -0700 Committer: Mariia Mykhailova <[email protected]> Committed: Wed May 11 16:40:14 2016 -0700 ---------------------------------------------------------------------- appveyor.yml | 14 +------------- .../Remote/Impl/StreamingTransportClient.cs | 2 +- .../Remote/Impl/StreamingTransportServer.cs | 11 +++-------- 3 files changed, 5 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/reef/blob/322aec5b/appveyor.yml ---------------------------------------------------------------------- diff --git a/appveyor.yml b/appveyor.yml index cada399..000c86e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -31,20 +31,8 @@ install: build_script: - cmd: msbuild .\lang\cs\Org.Apache.REEF.sln /p:Configuration="Debug" /p:Platform="x64" /m -# test script temporarily excludes StreamingRemoteManagerTest (see REEF-1311) and downloads xunit.runner.console -# to be reverted as part of REEF-1243 test_script: - - cmd: cd .\lang\cs - - cmd: nuget restore .\.nuget\packages.config -o .\packages - - cmd: .\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe .\bin\x64\Debug\Org.Apache.REEF.Client.Tests\Org.Apache.REEF.Client.Tests.dll - - cmd: .\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe .\bin\x64\Debug\Org.Apache.REEF.Common.Tests\Org.Apache.REEF.Common.Tests.dll - - cmd: .\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe .\bin\x64\Debug\Org.Apache.REEF.Evaluator.Tests\Org.Apache.REEF.Evaluator.Tests.dll - - cmd: .\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe .\bin\x64\Debug\Org.Apache.REEF.IMRU.Tests\Org.Apache.REEF.IMRU.Tests.dll - - cmd: .\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe .\bin\x64\Debug\Org.Apache.REEF.IO.Tests\Org.Apache.REEF.IO.Tests.dll - - cmd: .\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe .\bin\x64\Debug\Org.Apache.REEF.Network.Tests\Org.Apache.REEF.Network.Tests.dll - - cmd: .\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe .\bin\x64\Debug\Org.Apache.REEF.Tang.Tests\Org.Apache.REEF.Tang.Tests.dll - - cmd: .\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe .\bin\x64\Debug\Org.Apache.REEF.Wake.Tests\Org.Apache.REEF.Wake.Tests.dll -class Org.Apache.REEF.Wake.Tests.ClockTest -class Org.Apache.REEF.Wake.Tests.MultiCodecTest -class Org.Apache.REEF.Wake.Tests.PubSubSubjectTest -class Org.Apache.REEF.Wake.Tests.RemoteManagerTest -class Org.Apache.REEF.Wake.Tests.StreamingTransportTest -class Org.Apache.REEF.Wake.Tests.TimeTest -class Org.Apache.REEF.Wake.Tests.TransportTest - - cmd: .\packages\xunit.runner.console.2.1.0\tools\xunit.console.exe .\bin\x64\Debug\Org.Apache.REEF.Tests\Org.Apache.REEF.Tests.dll + - cmd: msbuild .\lang\cs\TestRunner.proj /p:Configuration="Debug" /p:Platform="x64" notifications: - provider: Email http://git-wip-us.apache.org/repos/asf/reef/blob/322aec5b/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/StreamingTransportClient.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/StreamingTransportClient.cs b/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/StreamingTransportClient.cs index aecade6..cabbdd0 100644 --- a/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/StreamingTransportClient.cs +++ b/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/StreamingTransportClient.cs @@ -68,7 +68,7 @@ namespace Org.Apache.REEF.Wake.Remote.Impl : this(remoteEndpoint, streamingCodec, clientFactory) { _observer = observer; - Task.Run(() => ResponseLoop()); + Task.Factory.StartNew(() => ResponseLoop(), TaskCreationOptions.LongRunning); } /// <summary> http://git-wip-us.apache.org/repos/asf/reef/blob/322aec5b/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/StreamingTransportServer.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/StreamingTransportServer.cs b/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/StreamingTransportServer.cs index 76ef7e8..47248ed 100644 --- a/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/StreamingTransportServer.cs +++ b/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/StreamingTransportServer.cs @@ -82,7 +82,7 @@ namespace Org.Apache.REEF.Wake.Remote.Impl public void Run() { FindAPortAndStartListener(); - _serverTask = Task.Run(() => StartServer()); + _serverTask = Task.Factory.StartNew(() => StartServer(), TaskCreationOptions.LongRunning); } private void FindAPortAndStartListener() @@ -131,21 +131,16 @@ namespace Org.Apache.REEF.Wake.Remote.Impl if (_serverTask != null) { - _serverTask.Wait(); - // Give the TransportServer Task 500ms to shut down, ignore any timeout errors try { CancellationTokenSource serverDisposeTimeout = new CancellationTokenSource(500); _serverTask.Wait(serverDisposeTimeout.Token); + _serverTask.Dispose(); } catch (Exception e) { - Console.Error.WriteLine(e); - } - finally - { - _serverTask.Dispose(); + Exceptions.Caught(e, Level.Warning, LOGGER); } } }
