diff --git a/backend/src/routes/health.js b/backend/src/routes/health.js index bc4ed02..b8ef2c5 100644 --- a/backend/src/routes/health.js +++ b/backend/src/routes/health.js @@ -69,7 +69,7 @@ async function checkZvolAccess() { async function checkResticRepository() { try { - const result = await runRestic(['snapshots', '--json'], { ignoreExitCode: true }); + const result = await runRestic(['--no-lock', 'snapshots', '--json'], { ignoreExitCode: true }); return checkValue(result.exitCode === 0, result.exitCode === 0 ? 'ok' : result.stderr.trim() || 'restic repository check failed'); } catch (error) { return checkValue(false, error.message); diff --git a/backend/src/routes/snapshots.js b/backend/src/routes/snapshots.js index 2fb8934..279961c 100644 --- a/backend/src/routes/snapshots.js +++ b/backend/src/routes/snapshots.js @@ -16,7 +16,7 @@ snapshotsRouter.get('/:vmName/:snapshotId/files', async (req, res, next) => { try { const snapshot = await validateSnapshotForVm(req.params.vmName, req.params.snapshotId); assertSnapshotIdShape(snapshot.id); - const result = await runRestic(['ls', '--json', snapshot.id]); + const result = await runRestic(['--no-lock', 'ls', '--json', snapshot.id]); const entries = result.stdout .split('\n') .filter(Boolean) diff --git a/backend/src/validators.js b/backend/src/validators.js index dfa3bfb..4bb5257 100644 --- a/backend/src/validators.js +++ b/backend/src/validators.js @@ -40,7 +40,7 @@ export async function validateVmExists(vmName) { export async function listSnapshotsForVm(vmName) { await validateVmExists(vmName); - const result = await runRestic(['snapshots', '--json', '--tag', vmName]); + const result = await runRestic(['--no-lock', 'snapshots', '--json', '--tag', vmName]); const snapshots = JSON.parse(result.stdout || '[]'); return snapshots.sort((a, b) => String(b.time || '').localeCompare(String(a.time || ''))); }