From 104453e35bac8dd523e80fead762cd6d4e5ae4ac Mon Sep 17 00:00:00 2001 From: "ASP.NET CI" Date: Mon, 6 Aug 2018 20:51:18 +0000 Subject: [PATCH 1/7] Update dependencies.props [auto-updated: dependencies] --- build/dependencies.props | 96 ++++++++++++++++++++-------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/build/dependencies.props b/build/dependencies.props index d5542de8d4..0dfaf34542 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -5,57 +5,57 @@ 0.10.13 3.1.0 - 2.2.0-preview1-34882 + 2.2.0-preview1-34896 2.2.0-preview1-20180731.1 1.7.3.4 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 4.5.0 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 - 2.2.0-preview1-34882 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 + 2.2.0-preview1-34896 2.2.0-preview1-26618-02 15.6.1 4.7.49 From 31b6ad69ae6d54724ff45b19f3c49de1c7d58fd0 Mon Sep 17 00:00:00 2001 From: BrennanConroy Date: Mon, 6 Aug 2018 19:14:44 -0700 Subject: [PATCH 2/7] Increase poll timeout in TS client (#2737) --- clients/ts/signalr/src/LongPollingTransport.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clients/ts/signalr/src/LongPollingTransport.ts b/clients/ts/signalr/src/LongPollingTransport.ts index ff75fa91fa..0cf69c51de 100644 --- a/clients/ts/signalr/src/LongPollingTransport.ts +++ b/clients/ts/signalr/src/LongPollingTransport.ts @@ -59,7 +59,7 @@ export class LongPollingTransport implements ITransport { const pollOptions: HttpRequest = { abortSignal: this.pollAbort.signal, headers: {}, - timeout: 90000, + timeout: 100000, }; if (transferFormat === TransferFormat.Binary) { From d76c07478042080ce3f4b05884348dc06fc4a110 Mon Sep 17 00:00:00 2001 From: BrennanConroy Date: Mon, 6 Aug 2018 19:15:53 -0700 Subject: [PATCH 3/7] Up Redis test log level (#2743) --- .../RedisServerFixture.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Microsoft.AspNetCore.SignalR.Redis.Tests/RedisServerFixture.cs b/test/Microsoft.AspNetCore.SignalR.Redis.Tests/RedisServerFixture.cs index e3f3b7f9d7..e2fab22665 100644 --- a/test/Microsoft.AspNetCore.SignalR.Redis.Tests/RedisServerFixture.cs +++ b/test/Microsoft.AspNetCore.SignalR.Redis.Tests/RedisServerFixture.cs @@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.SignalR.Redis.Tests } var testLog = AssemblyTestLog.ForAssembly(typeof(RedisServerFixture).Assembly); - _logToken = testLog.StartTestLog(null, $"{nameof(RedisServerFixture)}_{typeof(TStartup).Name}", out _loggerFactory, "RedisServerFixture"); + _logToken = testLog.StartTestLog(null, $"{nameof(RedisServerFixture)}_{typeof(TStartup).Name}", out _loggerFactory, LogLevel.Trace, "RedisServerFixture"); _logger = _loggerFactory.CreateLogger>(); Docker.Default.Start(_logger); From 1874368a5caa4f562d1d693e58ae5b68a24d6166 Mon Sep 17 00:00:00 2001 From: BrennanConroy Date: Mon, 6 Aug 2018 19:16:52 -0700 Subject: [PATCH 4/7] Fix flaky test (#2739) --- .../HubConnectionTests.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/Microsoft.AspNetCore.SignalR.Client.FunctionalTests/HubConnectionTests.cs b/test/Microsoft.AspNetCore.SignalR.Client.FunctionalTests/HubConnectionTests.cs index c300c4bb23..6ba1bbeb5e 100644 --- a/test/Microsoft.AspNetCore.SignalR.Client.FunctionalTests/HubConnectionTests.cs +++ b/test/Microsoft.AspNetCore.SignalR.Client.FunctionalTests/HubConnectionTests.cs @@ -398,8 +398,15 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests [MemberData(nameof(HubProtocolsAndTransportsAndHubPaths))] public async Task StreamDoesNotStartIfTokenAlreadyCanceled(string protocolName, HttpTransportType transportType, string path) { + bool ExpectedErrors(WriteContext writeContext) + { + return (writeContext.LoggerName == nameof(Http.Connections.Client.Internal.ServerSentEventsTransport) || + writeContext.LoggerName == nameof(Http.Connections.Client.Internal.LongPollingTransport)) && + writeContext.EventId.Name == "ErrorSending"; + } + var protocol = HubProtocols[protocolName]; - using (StartVerifiableLog(out var loggerFactory, LogLevel.Trace, $"{nameof(StreamDoesNotStartIfTokenAlreadyCanceled)}_{protocol.Name}_{transportType}_{path.TrimStart('/')}")) + using (StartVerifiableLog(out var loggerFactory, LogLevel.Trace, $"{nameof(StreamDoesNotStartIfTokenAlreadyCanceled)}_{protocol.Name}_{transportType}_{path.TrimStart('/')}", expectedErrorsFilter: ExpectedErrors)) { var connection = CreateHubConnection(path, transportType, protocol, loggerFactory); try From e403de7fbf3cec14da0951a25046162703267e19 Mon Sep 17 00:00:00 2001 From: BrennanConroy Date: Mon, 6 Aug 2018 19:17:29 -0700 Subject: [PATCH 5/7] Solve LongPolling races by moving Cts disposal to connection disposal (#2731) --- .../Internal/HttpConnectionContext.cs | 2 ++ .../Internal/HttpConnectionDispatcher.cs | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionContext.cs b/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionContext.cs index a12e8aba61..045e821ee1 100644 --- a/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionContext.cs +++ b/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionContext.cs @@ -182,6 +182,8 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal { Task disposeTask; + Cancellation?.Dispose(); + await StateLock.WaitAsync(); try { diff --git a/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionDispatcher.cs b/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionDispatcher.cs index f8c33e051f..e13b532e16 100644 --- a/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionDispatcher.cs +++ b/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionDispatcher.cs @@ -313,10 +313,6 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal connection.LastSeenUtc = DateTime.UtcNow; connection.Status = HttpConnectionStatus.Inactive; - - connection.Cancellation?.Cancel(); - - connection.Cancellation = null; } } finally From dadff9fc2950abe336301c4cba4c468697508567 Mon Sep 17 00:00:00 2001 From: BrennanConroy Date: Tue, 7 Aug 2018 09:18:10 -0700 Subject: [PATCH 6/7] Avoid ODE in tests with Server logging (#2742) --- .../ServerLogScope.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/test/Microsoft.AspNetCore.SignalR.Tests.Utils/ServerLogScope.cs b/test/Microsoft.AspNetCore.SignalR.Tests.Utils/ServerLogScope.cs index 1b4ff4e05c..37d9e6fb0e 100644 --- a/test/Microsoft.AspNetCore.SignalR.Tests.Utils/ServerLogScope.cs +++ b/test/Microsoft.AspNetCore.SignalR.Tests.Utils/ServerLogScope.cs @@ -15,6 +15,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests private readonly ConcurrentDictionary _serverLoggers; private readonly ILogger _scopeLogger; private readonly object _lock; + private bool _disposed; public ServerLogScope(ServerFixture serverFixture, ILoggerFactory loggerFactory, IDisposable wrappedDisposable) { @@ -45,11 +46,15 @@ namespace Microsoft.AspNetCore.SignalR.Tests ILogger logger; - // There maybe thready safety issues in logging when creating multiple loggers at the same time - // https://github.com/aspnet/Logging/issues/810 lock (_lock) { + if (_disposed) + { + return; + } + // Create (or get) a logger with the same name as the server logger + // Call in the lock to avoid ODE where LoggerFactory could be disposed by the wrapped disposable logger = _serverLoggers.GetOrAdd(write.LoggerName, loggerName => _loggerFactory.CreateLogger("SERVER " + loggerName)); } @@ -62,7 +67,11 @@ namespace Microsoft.AspNetCore.SignalR.Tests _scopeLogger.LogInformation("Server log scope stopped."); - _wrappedDisposable?.Dispose(); + lock (_lock) + { + _wrappedDisposable?.Dispose(); + _disposed = true; + } } } } \ No newline at end of file From d8741d1b0f6dbb47f4e6894d719a10aca02e93db Mon Sep 17 00:00:00 2001 From: BrennanConroy Date: Tue, 7 Aug 2018 10:20:11 -0700 Subject: [PATCH 7/7] Skip Redis tests on macOS (#2740) --- test/Microsoft.AspNetCore.SignalR.Redis.Tests/Docker.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/Microsoft.AspNetCore.SignalR.Redis.Tests/Docker.cs b/test/Microsoft.AspNetCore.SignalR.Redis.Tests/Docker.cs index 94b19673e7..29285aa3e6 100644 --- a/test/Microsoft.AspNetCore.SignalR.Redis.Tests/Docker.cs +++ b/test/Microsoft.AspNetCore.SignalR.Redis.Tests/Docker.cs @@ -50,6 +50,13 @@ namespace Microsoft.AspNetCore.SignalR.Redis.Tests private static string GetDockerLocation() { + // OSX + Docker + Redis don't play well together for some reason. We already have these tests covered on Linux and Windows + // So we are happy ignoring them on OSX + if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + return null; + } + foreach (var dir in Environment.GetEnvironmentVariable("PATH").Split(Path.PathSeparator)) { var candidate = Path.Combine(dir, "docker" + _exeSuffix);