Skip to content

Add additional scenarios to the kubevirt-datamover e2e tests for incremental sequence #2252

Description

@weshayutin

Test 1: Normal backup sequence (full -> incremental)

  1. Backup 1 (cirros-full-1): Completed as Full. No checkpoint chain in S3, controller correctly set expected-backup-type: full. No mismatch.
  2. Backup 2 (cirros-incr-1): Completed as Incremental. S3 chain valid (length 1), controller set expected-backup-type: incremental, VMB reported Incremental. No mismatch.

Test 2: VM restart scenario

  1. Stopped and restarted the VM (oc patch vm ... running:false/true)
  2. Backup 3 (cirros-mismatch-test): VM restart did not invalidate the libvirt checkpoint. VMB completed as Incremental. No mismatch triggered.

Test 3: Delete libvirt checkpoints via virsh

  1. Deleted all libvirt checkpoints from the virt-launcher pod:
    oc exec -n cirros-test <virt-launcher-pod> -- virsh checkpoint-delete <domain> <checkpoint-name>
    
  2. Confirmed checkpoints were gone (virsh checkpoint-list returned empty)
  3. S3 index still had a valid chain (3 checkpoints), controller set expected-backup-type: incremental
  4. Backup 4 (cirros-mismatch-test-2): maxIncrementalBackups: 2 in DPA forced a full backup before the mismatch could occur. Controller set expected type to full due to max limit. No mismatch.

Test 4: Delete checkpoints with maxIncrementalBackups disabled

  1. Set maxIncrementalBackups: 0 (unlimited) in DPA
  2. Deleted the new libvirt checkpoint created by backup 4
  3. S3 chain valid (chain length 1 after the forced full), controller allowed incremental, set expected-backup-type: incremental
  4. Backup 5 (cirros-mismatch-test-3): VMB stuck on Initializing indefinitely. virt-controller repeatedly fails with:
    "Domain checkpoint not found: Checkpoint '...' for incremental backup of disk 'vda' not found"
    
    It reenqueues the VMB every ~17 minutes but never falls back to a full backup. This is CNV-85377.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions