Fixed relilability issues in running health checks

Summary: Run doctor checks remained pending when the socket disonnected during a check. This

Reviewed By: aigoncharov

Differential Revision: D32984539

fbshipit-source-id: 277005e78803afaaa220cc5ca7fdc9cca6254453
This commit is contained in:
Michel Weststrate
2021-12-13 05:46:42 -08:00
committed by Facebook GitHub Bot
parent 6f9983eb42
commit 0510786dec
4 changed files with 27 additions and 9 deletions

View File

@@ -59,7 +59,7 @@ export function connectFlipperServerToStore(
{'' + err}
</>
) : (
<>Failed to start Flipper server: ${err.message}</>
<>Failed to start Flipper server: {err.message ?? err}</>
),
duration: null,
});

View File

@@ -50,12 +50,21 @@ async function launchHealthchecks(options: HealthcheckOptions): Promise<void> {
continue;
}
for (const h of category.healthchecks) {
const checkResult = await flipperServer.exec(
'doctor-run-healthcheck',
{settings: options.settings},
categoryKey as keyof FlipperDoctor.Healthchecks,
h.key,
);
const checkResult: FlipperDoctor.HealthcheckResult = await flipperServer
.exec(
'doctor-run-healthcheck',
{settings: options.settings},
categoryKey as keyof FlipperDoctor.Healthchecks,
h.key,
)
.catch((e) => {
console.error('Failed to run doctor check', e);
return {
status: 'FAILED',
isAcknowledged: false,
message: 'Failed to run doctor check: ' + e,
};
});
const metricName = `doctor:${h.key.replace('.', ':')}.healthcheck`; // e.g. "doctor:ios:xcode-select.healthcheck"
if (checkResult.status !== 'SUCCESS') {
hasProblems = true;