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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions