Page MenuHomePhabricator

D4514.id14430.diff
No OneTemporary

D4514.id14430.diff

diff --git a/keyserver/src/database/database.js b/keyserver/src/database/database.js
--- a/keyserver/src/database/database.js
+++ b/keyserver/src/database/database.js
@@ -13,6 +13,22 @@
const SQLStatement: SQLStatementType = SQL.SQLStatement;
+let migrationConnection;
+async function getMigrationConnection() {
+ const scriptContext = getScriptContext();
+ const dbConfig = await getDBConfig();
+ if (migrationConnection) {
+ return migrationConnection;
+ }
+ migrationConnection = await mysqlPromise.createConnection({
+ ...dbConfig,
+ multipleStatements: !!(
+ scriptContext && scriptContext.allowMultiStatementSQLQueries
+ ),
+ });
+ return migrationConnection;
+}
+
let pool, databaseMonitor;
async function loadPool(): Promise<Pool> {
if (pool) {
@@ -86,6 +102,12 @@
const MYSQL_DEADLOCK_ERROR_CODE = 1213;
+let migrationsConcluded = false;
+function setMigrationsConcluded() {
+ migrationsConcluded = true;
+ migrationConnection.end();
+}
+
type QueryOptions = {
+triesLeft?: number,
+multipleStatements?: boolean,
@@ -98,6 +120,9 @@
const multipleStatements = options?.multipleStatements ?? false;
let connection;
+ if (!migrationsConcluded) {
+ connection = await getMigrationConnection();
+ }
if (multipleStatements) {
connection = await getMultipleStatementsConnection();
}
@@ -157,6 +182,7 @@
appendSQLArray,
mergeAndConditions,
mergeOrConditions,
+ setMigrationsConcluded,
dbQuery,
rawSQL,
};
diff --git a/keyserver/src/database/migrations.js b/keyserver/src/database/migrations.js
--- a/keyserver/src/database/migrations.js
+++ b/keyserver/src/database/migrations.js
@@ -6,7 +6,7 @@
import { getMessageForException } from 'lib/utils/errors';
import sleep from 'lib/utils/sleep';
-import { dbQuery, SQL } from './database';
+import { dbQuery, SQL, setMigrationsConcluded } from './database';
import { fetchDBVersion, updateDBVersion } from './db-version';
import { migrations } from './migration-config';
import { setupDB } from './setup-db';
@@ -45,6 +45,7 @@
return false;
}
}
+ setMigrationsConcluded();
return true;
}

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 6, 9:21 PM (20 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2250929
Default Alt Text
D4514.id14430.diff (2 KB)

Event Timeline