fix(backups): _isAlreadyTransferred is async

This leads to a retransfer and a EEXIST error while writing the metadata.

It can happen when a mirror transfer to multiple remotes, fails on one remote and is restarted/resumed.
This commit is contained in:
Florent Beauchamp 2024-02-13 09:44:31 +00:00 committed by Julien Fontanet
parent 810cdc1a77
commit b4e1064914

View File

@ -113,13 +113,13 @@ export const MixinRemoteWriter = (BaseClass = Object) =>
) )
} }
_isAlreadyTransferred(timestamp) { async _isAlreadyTransferred(timestamp) {
const vmUuid = this._vmUuid const vmUuid = this._vmUuid
const adapter = this._adapter const adapter = this._adapter
const backupDir = getVmBackupDir(vmUuid) const backupDir = getVmBackupDir(vmUuid)
try { try {
const actualMetadata = JSON.parse( const actualMetadata = JSON.parse(
adapter._handler.readFile(`${backupDir}/${formatFilenameDate(timestamp)}.json`) await adapter._handler.readFile(`${backupDir}/${formatFilenameDate(timestamp)}.json`)
) )
return actualMetadata return actualMetadata
} catch (error) {} } catch (error) {}