test(pi): measure crash convergence before OS forensics
This commit is contained in:
@@ -1588,15 +1588,22 @@ export async function injectFinalAsarResilienceFailure(
|
||||
run.targetConversationId,
|
||||
failure,
|
||||
);
|
||||
const status = await waitForResilienceStatus(
|
||||
(candidate) => candidate.target.workerStatus === 'error'
|
||||
&& candidate.target.workerGeneration === injected.generation,
|
||||
'Injected Pi worker failure did not reach the target Conversation',
|
||||
);
|
||||
const deadline = Date.now() + 2_000;
|
||||
let target = await run.composition.conversations.getSnapshot(run.targetConversationId);
|
||||
while (Date.now() < deadline && (
|
||||
target.worker.status !== 'error'
|
||||
|| target.cursor.workerGeneration !== injected.generation
|
||||
)) {
|
||||
await delay(10);
|
||||
target = await run.composition.conversations.getSnapshot(run.targetConversationId);
|
||||
}
|
||||
const terminalizationMs = Date.now() - startedAt;
|
||||
if (terminalizationMs > 2_000) {
|
||||
if (target.worker.status !== 'error'
|
||||
|| target.cursor.workerGeneration !== injected.generation
|
||||
|| terminalizationMs > 2_000) {
|
||||
throw new Error(`Injected Pi worker failure exceeded the 2s convergence bound: ${terminalizationMs}ms`);
|
||||
}
|
||||
const status = await getFinalAsarResilienceStatus();
|
||||
return { ...injected, terminalizationMs, status };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user