fix: guard against missing analysis_id and limit poll error retries
This commit is contained in:
parent
1ecaefe1d8
commit
0c2b11f2d2
2 changed files with 33 additions and 0 deletions
|
|
@ -156,7 +156,14 @@ async function runAnalysis(vmid, filename, vmName) {
|
|||
}
|
||||
|
||||
var analysisId = data.analysis_id;
|
||||
if (!analysisId) {
|
||||
setPhase('Analysis failed', 0, false);
|
||||
showError('Backend returned invalid response — may need restart.');
|
||||
return;
|
||||
}
|
||||
|
||||
var startTime = Date.now();
|
||||
var pollErrors = 0;
|
||||
|
||||
for (;;) {
|
||||
await sleep(2000);
|
||||
|
|
@ -180,6 +187,16 @@ async function runAnalysis(vmid, filename, vmName) {
|
|||
showError(sdata.error_details || 'Analysis failed');
|
||||
return;
|
||||
}
|
||||
if (sdata.error) {
|
||||
pollErrors++;
|
||||
if (pollErrors > 15) {
|
||||
setPhase('Analysis failed', 0, false);
|
||||
showError('Backend unavailable — analysis may need restart.');
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
pollErrors = 0;
|
||||
}
|
||||
} catch (_) {}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -119,9 +119,15 @@ async function startScpPull(e) {
|
|||
btn.disabled = false; return;
|
||||
}
|
||||
var analysisId = adata.analysis_id;
|
||||
if (!analysisId) {
|
||||
setScpPhase('Analysis failed', 0, false);
|
||||
showScpError('Backend returned invalid response — may need restart.');
|
||||
btn.disabled = false; return;
|
||||
}
|
||||
var vmid = document.getElementById('scp-vmid').value;
|
||||
var vmName = document.getElementById('scp-vm-name').value.trim();
|
||||
var astart = Date.now();
|
||||
var pollErrs = 0;
|
||||
for (;;) {
|
||||
await new Promise(r => setTimeout(r, 2000));
|
||||
var sr = await fetch('/session/analyze/status/' + analysisId);
|
||||
|
|
@ -141,6 +147,16 @@ async function startScpPull(e) {
|
|||
showScpError(sdata.error_details || 'Analysis failed');
|
||||
btn.disabled = false; return;
|
||||
}
|
||||
if (sdata.error) {
|
||||
pollErrs++;
|
||||
if (pollErrs > 15) {
|
||||
setScpPhase('Analysis failed', 0, false);
|
||||
showScpError('Backend unavailable — analysis may need restart.');
|
||||
btn.disabled = false; return;
|
||||
}
|
||||
} else {
|
||||
pollErrs = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pdata.phase === 'error') {
|
||||
|
|
|
|||
Loading…
Reference in a new issue