diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props
index 29e2efcf98..67c142aadd 100644
--- a/eng/Baseline.Designer.props
+++ b/eng/Baseline.Designer.props
@@ -2,7 +2,7 @@
$(MSBuildAllProjects);$(MSBuildThisFileFullPath)
- 2.1.14
+ 2.1.15
@@ -453,25 +453,27 @@
- 1.0.4
+ 1.0.15
-
+
+
-
+
+
@@ -1061,12 +1063,12 @@
- 1.0.4
+ 1.0.15
+
-
diff --git a/eng/Baseline.xml b/eng/Baseline.xml
index 69761f4e19..af6f6eaf27 100644
--- a/eng/Baseline.xml
+++ b/eng/Baseline.xml
@@ -4,7 +4,7 @@ This file contains a list of all the packages and their versions which were rele
build of ASP.NET Core 2.1.x. Update this list when preparing for a new patch.
-->
-
+
@@ -53,7 +53,7 @@ build of ASP.NET Core 2.1.x. Update this list when preparing for a new patch.
-
+
@@ -109,7 +109,7 @@ build of ASP.NET Core 2.1.x. Update this list when preparing for a new patch.
-
+
diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props
index 513d6f73b1..b4ea70ab0a 100644
--- a/eng/PatchConfig.props
+++ b/eng/PatchConfig.props
@@ -44,8 +44,10 @@ Later on, this will be checked using this condition:
Microsoft.AspNetCore.CookiePolicy;
-
+
+ Microsoft.AspNetCore.Http.Connections;
+ Microsoft.AspNetCore.SignalR.Core;
diff --git a/src/PackageArchive/Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.15.txt b/src/PackageArchive/Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.15.txt
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/src/PackageArchive/Archive.CiServer.Patch.Compat/ArchiveBaseline.2.1.15.txt
@@ -0,0 +1 @@
+
diff --git a/src/PackageArchive/Archive.CiServer.Patch/ArchiveBaseline.2.1.15.txt b/src/PackageArchive/Archive.CiServer.Patch/ArchiveBaseline.2.1.15.txt
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/src/PackageArchive/Archive.CiServer.Patch/ArchiveBaseline.2.1.15.txt
@@ -0,0 +1 @@
+
diff --git a/src/SignalR/clients/ts/FunctionalTests/selenium/run-tests.ts b/src/SignalR/clients/ts/FunctionalTests/selenium/run-tests.ts
index c74603b12c..6f548f1534 100644
--- a/src/SignalR/clients/ts/FunctionalTests/selenium/run-tests.ts
+++ b/src/SignalR/clients/ts/FunctionalTests/selenium/run-tests.ts
@@ -1,7 +1,8 @@
import { ChildProcess, spawn } from "child_process";
-import * as fs from "fs";
+import * as _fs from "fs";
import { EOL } from "os";
import * as path from "path";
+import { promisify } from "util";
import { PassThrough, Readable } from "stream";
import { run } from "../../webdriver-tap-runner/lib";
@@ -9,6 +10,16 @@ import { run } from "../../webdriver-tap-runner/lib";
import * as _debug from "debug";
const debug = _debug("signalr-functional-tests:run");
+const ARTIFACTS_DIR = path.resolve(__dirname, "..", "..", "..", "..", "artifacts");
+const LOGS_DIR = path.resolve(ARTIFACTS_DIR, "logs");
+
+// Promisify things from fs we want to use.
+const fs = {
+ createWriteStream: _fs.createWriteStream,
+ exists: promisify(_fs.exists),
+ mkdir: promisify(_fs.mkdir),
+};
+
process.on("unhandledRejection", (reason) => {
console.error(`Unhandled promise rejection: ${reason}`);
process.exit(1);
@@ -102,6 +113,13 @@ if (chromePath) {
try {
const serverPath = path.resolve(__dirname, "..", "bin", configuration, "netcoreapp2.1", "FunctionalTests.dll");
+ if (!await fs.exists(ARTIFACTS_DIR)) {
+ await fs.mkdir(ARTIFACTS_DIR);
+ }
+ if (!await fs.exists(LOGS_DIR)) {
+ await fs.mkdir(LOGS_DIR);
+ }
+
debug(`Launching Functional Test Server: ${serverPath}`);
const dotnet = spawn("dotnet", [serverPath], {
env: {
@@ -117,6 +135,9 @@ if (chromePath) {
}
}
+ const logStream = fs.createWriteStream(path.resolve(LOGS_DIR, "ts.functionaltests.dotnet.log"));
+ dotnet.stdout.pipe(logStream);
+
process.on("SIGINT", cleanup);
process.on("exit", cleanup);
diff --git a/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionContext.cs b/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionContext.cs
index 045e821ee1..cf04d5ff48 100644
--- a/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionContext.cs
+++ b/src/SignalR/common/Http.Connections/src/Internal/HttpConnectionContext.cs
@@ -27,6 +27,8 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal
IHttpTransportFeature,
IConnectionInherentKeepAliveFeature
{
+ private static long _tenSeconds = TimeSpan.FromSeconds(10).Ticks;
+
private readonly object _itemsLock = new object();
private readonly object _heartbeatLock = new object();
private List<(Action