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