Add timeout error
This commit is contained in:
parent
cb2d82ab44
commit
4fb4b498a1
3 changed files with 13 additions and 4 deletions
|
|
@ -80,6 +80,5 @@ And to clean up the logs & database files, run `task clean`
|
||||||
|
|
||||||
- [Sync server](./sync-server/README.md)
|
- [Sync server](./sync-server/README.md)
|
||||||
|
|
||||||
a create that has been processed by the server but got lost on the way back will create a 2nd doc if it gets edited
|
|
||||||
|
|
||||||
remove force merge everywhere
|
remove force merge everywhere
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import { MockAgent } from "./agent/mock-agent";
|
||||||
import { sleep } from "./utils/sleep";
|
import { sleep } from "./utils/sleep";
|
||||||
import { v4 as uuidv4 } from "uuid";
|
import { v4 as uuidv4 } from "uuid";
|
||||||
import { randomCasing } from "./utils/random-casing";
|
import { randomCasing } from "./utils/random-casing";
|
||||||
|
import { TimeoutError } from "./utils/with-timeout";
|
||||||
|
|
||||||
const TEST_ITERATIONS = 5;
|
const TEST_ITERATIONS = 5;
|
||||||
const MAX_INITIAL_DOCS = 0;
|
const MAX_INITIAL_DOCS = 0;
|
||||||
|
|
@ -95,7 +96,7 @@ async function runTest({
|
||||||
logger.info(`Finishing up ${client.name}`);
|
logger.info(`Finishing up ${client.name}`);
|
||||||
await client.finish();
|
await client.finish();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (!slowFileEvents) {
|
if (err instanceof TimeoutError || !slowFileEvents) {
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -107,7 +108,7 @@ async function runTest({
|
||||||
logger.info(`Destroying ${client.name}`);
|
logger.info(`Destroying ${client.name}`);
|
||||||
await client.destroy();
|
await client.destroy();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (!slowFileEvents) {
|
if (err instanceof TimeoutError || !slowFileEvents) {
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { __debug_locks } from "sync-client";
|
||||||
|
|
||||||
export async function withTimeout<T>(
|
export async function withTimeout<T>(
|
||||||
promise: Promise<T>,
|
promise: Promise<T>,
|
||||||
timeoutMs: number,
|
timeoutMs: number,
|
||||||
|
|
@ -8,9 +10,16 @@ export async function withTimeout<T>(
|
||||||
new Promise<T>((_, reject) =>
|
new Promise<T>((_, reject) =>
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
reject(
|
reject(
|
||||||
new Error(`${operationName} timed out after ${timeoutMs}ms`)
|
new TimeoutError(`${operationName} timed out after ${timeoutMs}ms ${__debug_locks.map(lock => lock.getDebugString()).join(", ")}`)
|
||||||
);
|
);
|
||||||
}, timeoutMs)
|
}, timeoutMs)
|
||||||
)
|
)
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class TimeoutError extends Error {
|
||||||
|
constructor(message: string) {
|
||||||
|
super(message);
|
||||||
|
this.name = "TimeoutError";
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue