Cannot take snapshots of VMs due to the error "An error occurred while taking a snapshot: A digest operation has failed."
search cancel

Cannot take snapshots of VMs due to the error "An error occurred while taking a snapshot: A digest operation has failed."

book

Article ID: 373339

calendar_today

Updated On:

Products

VMware vSphere ESXi 7.0

Issue/Introduction

Symptoms:

When creating a snapshot on a Horizon Virtual Machine, you experience these symptoms:

  • In vSphere client, you see the error "A digest operation has failed. An error occurred while taking a snapshot"
  • In the VMX log of the virtual machine, /vmfs/volumes/<datastoreUUID>/<folder>/vmware.log, you see entries similar to:
vmx| DIGESTLIB-FILE : DigestLib_FlushMetaDataToDisk: digest header of parent digest has CID 0x3f45376c new CID of child digest is 0x529596f4, parent digest may be corrupt, failing meta-data update on child.
vmx| DISKLIB-VMFS  : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-digest-flat.vmdk" : closed.
vmx| DISKLIB-LIB_CREATE   : DiskLibPostCreateChild: could not init child digest disk: Invalid parameter (8).
vmx| DISKLIB-VMFS  : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-digest-sesparse.vmdk" : closed.
vmx| DISKLIB-VMFS  : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-000001-sesparse.vmdk" : closed.
vmx| DISKLIB-LIB_CREATE   : Encountered error in DiskLibPostCreateChild: A digest operation has failed.
..
vmx| DISKLIB-LIB_CREATE   : Failed to create link: A digest operation has failed (66)
vmx|  Er(02) vcpu-X - DISKLIB-LIB_CREATE   : DiskLib_CreateChild: failed to create child disk: A digest operation has failed (66).
..
vmx| DISKLIB-LIB   : DiskLibUnlinkInt: Disk delete successfully completed { result:0, Msg: 'The operation completed successfully', fileName:'/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-000001-digest.vmdk'}
vmx| SNAPSHOT: SnapshotBranchDisk: Failed to branch disk: '/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>.vmdk' -> '/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>.vmdk' : A digest operation has failed (66)
vmx| DISKLIB-VMFS  : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-digest-flat.vmdk" : closed.
vmx| DISKLIB-VMFS  : "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-flat.vmdk" : closed.
vmx| SNAPSHOT: SnapshotBranch failed: A digest operation has failed (5).

 

  •  In /var/run/log/vpxa.log, you see entries similar to:
YYYY-MM-DDTHH:MM:SS info vpxa[5899216] [Originator@6876 sub=Default opID=<OP-ID>] [VpxLRO] -- ERROR task-#### -- vpxa -- vpxapi.VpxaService.createSnapshot: vim.fault.GenericVmConfigFault:
--> Result:
--> (vim.fault.GenericVmConfigFault) {
-->    faultCause = (vmodl.MethodFault) null,
-->    faultMessage = (vmodl.LocalizableMessage) [
-->       (vmodl.LocalizableMessage) {
-->          key = "msg.checkpoint.save.fail2.std3",
-->          arg = (vmodl.KeyAnyValue) [
-->             (vmodl.KeyAnyValue) {
-->                key = "1",
-->                value = "msg.disklib.DIGEST"
-->             }
-->          ],
-->          message = "An error occurred while saving the snapshot: A digest operation has failed."
-->       },
-->       (vmodl.LocalizableMessage) {
-->          key = "msg.checkpoint.save.fail2.std",
-->          arg = (vmodl.KeyAnyValue) [
-->             (vmodl.KeyAnyValue) {
-->                key = "1",
-->                value = "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-Snapshot.vmsn"
-->             }
-->          ],
-->          message = "An error occurred while saving snapshot file "/vmfs/volumes/<datastoreUUID>/<folder>/<VMname>-Snapshot.vmsn"."
-->       },
-->       (vmodl.LocalizableMessage) {
-->          key = "msg.snapshot.vigor.take.error",
-->          arg = (vmodl.KeyAnyValue) [
-->             (vmodl.KeyAnyValue) {
-->                key = "1",
-->                value = "msg.disklib.DIGEST"
-->             }
-->          ],
-->          message = "An error occurred while taking a snapshot: A digest operation has failed."
-->       }
-->    ],
-->    reason = "An error occurred while saving the snapshot: A digest operation has failed."
-->    msg = "An error occurred while saving the snapshot: A digest operation has failed."
--> }
--> Args:
-->
--> Arg vmid:
--> 179
--> Arg name:
--> "VM Snapshot"
--> Arg description:
--> ""
--> Arg memory:
--> true
--> Arg quiesce:
--> false

Environment

  • VMware vSphere ESXi 7.0.3
  • VMware vSphere ESXi 8.0.x

Cause

The issue has been observed on Horizon persistent clone VMs. 

Resolution

To workaround the issue:

  1. Power the VM off
  2. Edit the descriptor file (.vmdk) of the VM and remove any existing "digest" references using a text editor tool such as vi (note: ensure to make a backup of the .vmdk file before making any changes):
    ddb.digestFilename = "<VMname>-digest.vmdk"
    ddb.digestType = "file"
  3. Save the changes made to the descriptor file
  4. Create a temporary folder within the VM folder
  5. move both the digest disk files into the folder:
    <VMname>-digest.vmdk
    <VMname>-digest-flat.vmdk
  6. Edit the <VMname>.vmx configuration file (again please ensure to backup the file before making the changes)
  7. remove the following line:
    scsi0:0.digest = "TRUE"
  8. Power the VM on
  9. Attempt to take a new snapshot