fix(backups): stop containers during volume backup creation

Track and recover stopped containers across interrupted backup executions.
This commit is contained in:
Andras Bacsai committed 2026-07-15 15:59:35 +02:00
1 parent 63961e0799
commit 4eec1ac547
11 files changed
+131 -81

No files matched your search

+4 -4
View File
@@ -112,7 +112,7 @@ class ScheduledJobManager implements ShouldQueue
}
try {
$this->recoverPausedVolumeBackupContainers();
$this->recoverStoppedVolumeBackupContainers();
$this->processScheduledVolumeBackups();
} catch (\Exception $e) {
Log::channel('scheduled-errors')->error('Failed to process scheduled volume backups', [
@@ -365,11 +365,11 @@ class ScheduledJobManager implements ShouldQueue
});
}
private function recoverPausedVolumeBackupContainers(): void
private function recoverStoppedVolumeBackupContainers(): void
{
ScheduledVolumeBackupExecution::query()
->where(fn (Builder $query) => $query
->where('pause_recovery_pending', true)
->where('stop_recovery_pending', true)
->orWhere('s3_cleanup_pending', true))
->chunkById(self::CHUNK_SIZE, function ($executions): void {
foreach ($executions as $execution) {
@@ -385,7 +385,7 @@ class ScheduledJobManager implements ShouldQueue
if ($backup->executions()
->where(fn (Builder $query) => $query
->where('pause_recovery_pending', true)
->where('stop_recovery_pending', true)
->orWhere('s3_cleanup_pending', true))
->exists()) {
$this->skippedCount++;