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

Reply via email to