Skip to content

Commit cc241d0

Browse files
authored
Merge pull request #2331 from github/aeisenberg/fix-flakes
Fix various test flakiness
2 parents 0ee090b + 9a40dec commit cc241d0

File tree

4 files changed

+28
-3
lines changed

4 files changed

+28
-3
lines changed

extensions/ql-vscode/src/extension.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,13 @@ function getCommands(
177177
cliServer.restartCliServer();
178178
await Promise.all([
179179
queryRunner.restartQueryServer(progress, token),
180-
ideServer.restart(),
180+
async () => {
181+
if (ideServer.isRunning()) {
182+
await ideServer.restart();
183+
} else {
184+
await ideServer.start();
185+
}
186+
},
181187
]);
182188
void showAndLogInformationMessage("CodeQL Query Server restarted.", {
183189
outputLogger: queryServerLogger,

extensions/ql-vscode/src/json-rpc-server.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export class ServerProcess implements Disposable {
2323
dispose(): void {
2424
void this.logger.log(`Stopping ${this.name}...`);
2525
this.connection.dispose();
26+
this.connection.end();
2627
this.child.stdin!.end();
2728
this.child.stderr!.destroy();
2829
// TODO kill the process if it doesn't terminate after a certain time limit.

extensions/ql-vscode/src/local-databases.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1029,7 +1029,19 @@ export class DatabaseManager extends DisposableObject {
10291029
token: vscode.CancellationToken,
10301030
dbItem: DatabaseItem,
10311031
) {
1032-
await this.qs.deregisterDatabase(progress, token, dbItem);
1032+
try {
1033+
await this.qs.deregisterDatabase(progress, token, dbItem);
1034+
} catch (e) {
1035+
const message = getErrorMessage(e);
1036+
if (message === "Connection is disposed.") {
1037+
// This is expected if the query server is not running.
1038+
void extLogger.log(
1039+
`Could not de-register database '${dbItem.name}' because query server is not running.`,
1040+
);
1041+
return;
1042+
}
1043+
throw e;
1044+
}
10331045
}
10341046
private async registerDatabase(
10351047
progress: ProgressCallback,

extensions/ql-vscode/src/query-server/queryserver-client.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ensureFile } from "fs-extra";
22

3-
import { DisposableObject } from "../pure/disposable-object";
3+
import { DisposableObject, DisposeHandler } from "../pure/disposable-object";
44
import { CancellationToken } from "vscode";
55
import { createMessageConnection, RequestType } from "vscode-jsonrpc/node";
66
import * as cli from "../cli";
@@ -224,4 +224,10 @@ export class QueryServerClient extends DisposableObject {
224224
delete this.progressCallbacks[id];
225225
}
226226
}
227+
228+
public dispose(disposeHandler?: DisposeHandler | undefined): void {
229+
this.progressCallbacks = {};
230+
this.stopQueryServer();
231+
super.dispose(disposeHandler);
232+
}
227233
}

0 commit comments

Comments
 (0)